23 const bool stereoVisual,
29 m_invalid_window(false),
30 m_sdl_custom_cursor(nullptr)
34 m_sdl_win = SDL_CreateWindow(title,
39 SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
48 SDL_RaiseWindow(m_sdl_win);
56 if (m_sdl_custom_cursor) {
57 SDL_FreeCursor(m_sdl_custom_cursor);
62 SDL_DestroyWindow(m_sdl_win);
76 if (
context->initializeDrawingContext()) {
87 if (m_invalid_window ==
false) {
89 m_invalid_window =
true;
99 SDL_SetWindowFullscreen(m_sdl_win, SDL_FALSE);
100 SDL_RestoreWindow(m_sdl_win);
103 SDL_SetWindowFullscreen(m_sdl_win, SDL_FALSE);
104 SDL_MaximizeWindow(m_sdl_win);
107 SDL_MinimizeWindow(m_sdl_win);
110 SDL_SetWindowFullscreen(m_sdl_win, SDL_TRUE);
121 Uint32 flags = SDL_GetWindowFlags(m_sdl_win);
123 if (flags & SDL_WINDOW_FULLSCREEN) {
126 if (flags & SDL_WINDOW_MAXIMIZED) {
129 if (flags & SDL_WINDOW_MINIMIZED) {
142 SDL_SetWindowTitle(m_sdl_win, title);
147 return SDL_GetWindowTitle(m_sdl_win);
158 SDL_GetWindowSize(m_sdl_win, &
w, &h);
159 SDL_GetWindowPosition(m_sdl_win, &
x, &
y);
170 SDL_GetWindowSize(m_sdl_win,
nullptr, &
height);
178 SDL_GetWindowSize(m_sdl_win, &
width,
nullptr);
193 SDL_GetWindowPosition(m_sdl_win, &x_win, &y_win);
202 SDL_GetWindowPosition(m_sdl_win, &x_win, &y_win);
210 0xef, 0x01, 0xff, 0x01, 0xff, 0x01, 0x7c, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00,
211 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xff, 0x01, 0xff, 0x01, 0xef, 0x01,
214 0x00, 0x77, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
215 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00,
217 #define sdl_std_cursor_WIDTH_xterm 9
218 #define sdl_std_cursor_HEIGHT_xterm 16
219 #define sdl_std_cursor_HOT_X_xterm -3
220 #define sdl_std_cursor_HOT_Y_xterm -7
223 0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfe, 0x1f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
224 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0x1f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f,
227 0xf8, 0x07, 0xf8, 0x07, 0xf8, 0x07, 0xfc, 0x0f, 0x86, 0x18, 0x83, 0x30, 0x81, 0xe0, 0xc1, 0xe1,
228 0xc1, 0xe1, 0x21, 0xe0, 0x13, 0x30, 0x06, 0x18, 0xfc, 0x0f, 0xf8, 0x07, 0xf8, 0x07, 0xf8, 0x07,
230 #define sdl_std_cursor_WIDTH_watch 16
231 #define sdl_std_cursor_HEIGHT_watch 16
232 #define sdl_std_cursor_HOT_X_watch -15
233 #define sdl_std_cursor_HOT_Y_watch -7
236 0xe8, 0x76, 0xfb, 0xdf, 0xfd, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xcf, 0x79, 0xc0, 0x01,
237 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0x80, 0x03,
240 0x88, 0x04, 0x20, 0x0a, 0xc9, 0x32, 0xf2, 0x09, 0x4c, 0x06, 0x43, 0x18, 0x40, 0x00, 0x40, 0x00,
241 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x01, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
243 #define sdl_std_cursor_WIDTH_umbrella 16
244 #define sdl_std_cursor_HEIGHT_umbrella 16
245 #define sdl_std_cursor_HOT_X_umbrella -7
246 #define sdl_std_cursor_HOT_Y_umbrella -12
249 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xc0, 0x01, 0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f,
250 0xdc, 0x1d, 0xcc, 0x19, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
253 0xff, 0x1f, 0xff, 0x1f, 0x00, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x50, 0x01, 0x48, 0x02, 0x44, 0x04,
254 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
256 #define sdl_std_cursor_WIDTH_top_side 15
257 #define sdl_std_cursor_HEIGHT_top_side 16
258 #define sdl_std_cursor_HOT_X_top_side -6
259 #define sdl_std_cursor_HOT_Y_top_side -14
262 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0xfc, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7,
263 0xc0, 0xf7, 0xe0, 0xf7, 0x70, 0xf7, 0x38, 0xf7, 0x1c, 0xf7, 0x0c, 0xf7, 0x00, 0xf0, 0x00, 0xf0,
266 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0xfc, 0x31, 0x80, 0x31, 0x40, 0x31,
267 0x20, 0x31, 0x10, 0x31, 0x08, 0x31, 0x04, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
269 #define sdl_std_cursor_WIDTH_top_right_corner 16
270 #define sdl_std_cursor_HEIGHT_top_right_corner 16
271 #define sdl_std_cursor_HOT_X_top_right_corner -13
272 #define sdl_std_cursor_HOT_Y_top_right_corner -14
275 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x3f,
276 0xef, 0x03, 0xef, 0x07, 0xef, 0x0e, 0xef, 0x1c, 0xef, 0x38, 0xef, 0x30, 0x0f, 0x00, 0x0f, 0x00,
279 0xff, 0x3f, 0xff, 0x3f, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0xe3, 0x0f, 0x63, 0x00, 0xa3, 0x00,
280 0x23, 0x01, 0x23, 0x02, 0x23, 0x04, 0x23, 0x08, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
282 #define sdl_std_cursor_WIDTH_top_left_corner 16
283 #define sdl_std_cursor_HEIGHT_top_left_corner 16
284 #define sdl_std_cursor_HOT_X_top_left_corner 0
285 #define sdl_std_cursor_HOT_Y_top_left_corner -14
288 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0xff, 0x01, 0xff, 0x01, 0x7c, 0x00, 0x7c, 0x00, 0x7c,
289 0x00, 0x7c, 0x00, 0x7c, 0x00, 0xff, 0x01, 0xff, 0x01, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00,
292 0x10, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28,
293 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00,
295 #define sdl_std_cursor_WIDTH_sb_v_double_arrow 9
296 #define sdl_std_cursor_HEIGHT_sb_v_double_arrow 15
297 #define sdl_std_cursor_HOT_X_sb_v_double_arrow -3
298 #define sdl_std_cursor_HOT_Y_sb_v_double_arrow -8
340 #define sdl_std_cursor_WIDTH_sb_h_double_arrow 15
341 #define sdl_std_cursor_HEIGHT_sb_h_double_arrow 9
342 #define sdl_std_cursor_HOT_X_sb_h_double_arrow -7
343 #define sdl_std_cursor_HOT_Y_sb_h_double_arrow -4
346 0x00, 0xf0, 0x00, 0xf0, 0xc0, 0xf0, 0xc0, 0xf1, 0x80, 0xf3, 0x00, 0xf7, 0xff, 0xff, 0xff,
347 0xff, 0xff, 0xff, 0x00, 0xf7, 0x80, 0xf3, 0xc0, 0xf1, 0xc0, 0xf0, 0x00, 0xf0, 0x00, 0xf0,
350 0x00, 0x30, 0x00, 0x30, 0x40, 0x30, 0x80, 0x30, 0x00, 0x31, 0x00, 0x32, 0xff, 0x37, 0x00,
351 0x32, 0x00, 0x31, 0x80, 0x30, 0x40, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
353 #define sdl_std_cursor_WIDTH_right_side 16
354 #define sdl_std_cursor_HEIGHT_right_side 15
355 #define sdl_std_cursor_HOT_X_right_side -13
356 #define sdl_std_cursor_HOT_Y_right_side -7
359 0x00, 0x03, 0x80, 0x03, 0xc0, 0x03, 0xe0, 0x03, 0xf0, 0x03, 0xf8, 0x03, 0xfc, 0x03, 0xfe, 0x03,
360 0xff, 0x03, 0xff, 0x03, 0xf8, 0x03, 0xbc, 0x03, 0x3c, 0x03, 0x1e, 0x00, 0x1e, 0x00, 0x0c, 0x00,
363 0x00, 0x80, 0x00, 0xc0, 0x00, 0xe0, 0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0xff,
364 0x00, 0xf8, 0x00, 0xd8, 0x00, 0x8c, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
366 #define sdl_std_cursor_WIDTH_right_ptr 10
367 #define sdl_std_cursor_HEIGHT_right_ptr 16
368 #define sdl_std_cursor_HOT_X_right_ptr -7
369 #define sdl_std_cursor_HOT_Y_right_ptr -14
372 0xf8, 0x00, 0xfc, 0x01, 0xfe, 0x03, 0xff, 0x07, 0x8f, 0x07, 0x9f, 0x07, 0xde, 0x07, 0xfc, 0x03,
373 0xf8, 0x01, 0xf8, 0x00, 0xf8, 0x00, 0xfc, 0x01, 0xfe, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x70, 0x00,
376 0x7c, 0x00, 0xfe, 0x00, 0xc7, 0x01, 0x83, 0x01, 0x87, 0x01, 0xc6, 0x01, 0xe0, 0x00, 0x78, 0x00,
377 0x38, 0x00, 0x28, 0x00, 0x28, 0x00, 0xee, 0x00, 0x6c, 0x00, 0x38, 0x00, 0x10, 0x00, 0x00, 0x00,
379 #define sdl_std_cursor_WIDTH_question_arrow 11
380 #define sdl_std_cursor_HEIGHT_question_arrow 16
381 #define sdl_std_cursor_HOT_X_question_arrow -4
382 #define sdl_std_cursor_HOT_Y_question_arrow -8
385 0xf0, 0x03, 0xf8, 0x07, 0xfc, 0x0f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x07, 0xf1, 0x83,
386 0xf1, 0xe3, 0xf3, 0xf3, 0xef, 0x39, 0x1e, 0x1e, 0xe0, 0x01, 0xfe, 0xc7, 0xff, 0xff, 0x0f, 0x7c,
389 0xe0, 0x01, 0xf0, 0x03, 0xf8, 0x07, 0xcc, 0x0c, 0xcc, 0x0c, 0xf8, 0x07, 0xf0, 0x03, 0xe0, 0x01,
390 0xe1, 0x21, 0xe1, 0x61, 0xc2, 0x10, 0x1c, 0x0e, 0xe0, 0x01, 0xf8, 0x47, 0x0f, 0x7c, 0x01, 0x20,
392 #define sdl_std_cursor_WIDTH_pirate 16
393 #define sdl_std_cursor_HEIGHT_pirate 16
394 #define sdl_std_cursor_HOT_X_pirate -7
395 #define sdl_std_cursor_HOT_Y_pirate -4
398 0x0f, 0x00, 0x0f, 0x00, 0x0f, 0x03, 0x8f, 0x03, 0xcf, 0x01, 0xef, 0x00, 0xff, 0xff, 0xff,
399 0xff, 0xff, 0xff, 0xef, 0x00, 0xcf, 0x01, 0x8f, 0x03, 0x0f, 0x03, 0x0f, 0x00, 0x0f, 0x00,
402 0x03, 0x00, 0x03, 0x00, 0x83, 0x00, 0x43, 0x00, 0x23, 0x00, 0x13, 0x00, 0xfb, 0x3f, 0x13,
403 0x00, 0x23, 0x00, 0x43, 0x00, 0x83, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
405 #define sdl_std_cursor_WIDTH_left_side 16
406 #define sdl_std_cursor_HEIGHT_left_side 15
407 #define sdl_std_cursor_HOT_X_left_side 0
408 #define sdl_std_cursor_HOT_Y_left_side -7
411 0x03, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00, 0xff, 0x01,
412 0xff, 0x03, 0xff, 0x03, 0x7f, 0x00, 0xf7, 0x00, 0xf3, 0x00, 0xe0, 0x01, 0xe0, 0x01, 0xc0, 0x00,
415 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00,
416 0xfe, 0x00, 0x3e, 0x00, 0x36, 0x00, 0x62, 0x00, 0x60, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00,
418 #define sdl_std_cursor_WIDTH_left_ptr 10
419 #define sdl_std_cursor_HEIGHT_left_ptr 16
420 #define sdl_std_cursor_HOT_X_left_ptr -8
421 #define sdl_std_cursor_HOT_Y_left_ptr -14
424 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff,
425 0xff, 0xff, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
428 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7f, 0xff,
429 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00,
431 #define sdl_std_cursor_WIDTH_crosshair 16
432 #define sdl_std_cursor_HEIGHT_crosshair 16
433 #define sdl_std_cursor_HOT_X_crosshair -7
434 #define sdl_std_cursor_HOT_Y_crosshair -8
437 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xcc, 0x19, 0xdc, 0x1d,
438 0xf8, 0x0f, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f,
441 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x04, 0x48, 0x02,
442 0x50, 0x01, 0xe0, 0x00, 0x40, 0x00, 0x00, 0x00, 0xff, 0x1f, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00,
444 #define sdl_std_cursor_WIDTH_bottom_side 15
445 #define sdl_std_cursor_HEIGHT_bottom_side 16
446 #define sdl_std_cursor_HOT_X_bottom_side -6
447 #define sdl_std_cursor_HOT_Y_bottom_side -1
450 0x00, 0xf0, 0x00, 0xf0, 0x0c, 0xf7, 0x1c, 0xf7, 0x38, 0xf7, 0x70, 0xf7, 0xe0, 0xf7, 0xc0, 0xf7,
451 0xfc, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
454 0x00, 0x30, 0x00, 0x30, 0x04, 0x31, 0x08, 0x31, 0x10, 0x31, 0x20, 0x31, 0x40, 0x31, 0x80, 0x31,
455 0xfc, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
457 #define sdl_std_cursor_WIDTH_bottom_right_corner 16
458 #define sdl_std_cursor_HEIGHT_bottom_right_corner 16
459 #define sdl_std_cursor_HOT_X_bottom_right_corner -13
460 #define sdl_std_cursor_HOT_Y_bottom_right_corner -1
463 0x0f, 0x00, 0x0f, 0x00, 0xef, 0x30, 0xef, 0x38, 0xef, 0x1c, 0xef, 0x0e, 0xef, 0x07, 0xef, 0x03,
464 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x3f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
467 0x03, 0x00, 0x03, 0x00, 0x23, 0x08, 0x23, 0x04, 0x23, 0x02, 0x23, 0x01, 0xa3, 0x00, 0x63, 0x00,
468 0xe3, 0x0f, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
470 #define sdl_std_cursor_WIDTH_bottom_left_corner 16
471 #define sdl_std_cursor_HEIGHT_bottom_left_corner 16
472 #define sdl_std_cursor_HOT_X_bottom_left_corner 0
473 #define sdl_std_cursor_HOT_Y_bottom_left_corner -1
476 0x00, 0xe0, 0x00, 0xf8, 0x00, 0xfe, 0x80, 0x7f, 0xe0, 0x7f, 0xf8, 0x3f, 0xfc, 0x3f, 0xfc, 0x1f,
477 0xe0, 0x1f, 0xf0, 0x0f, 0xf8, 0x0f, 0x7c, 0x07, 0x3e, 0x07, 0x1f, 0x02, 0x0e, 0x00, 0x04, 0x00,
480 0x00, 0x30, 0x00, 0x3c, 0x00, 0x1f, 0xc0, 0x1f, 0xf0, 0x0f, 0xfc, 0x0f, 0xc0, 0x07, 0xe0, 0x07,
481 0x70, 0x03, 0x38, 0x03, 0x1c, 0x01, 0x0e, 0x01, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
483 #define sdl_std_cursor_WIDTH_arrow 16
484 #define sdl_std_cursor_HEIGHT_arrow 16
485 #define sdl_std_cursor_HOT_X_arrow -13
486 #define sdl_std_cursor_HOT_Y_arrow -14
494 const Uint8 *
data,
const Uint8 *
mask,
int w,
int h,
int hot_x,
int hot_y)
500 Uint8 datab = 0, maskb = 0;
501 const Uint32 black = 0xFF000000;
502 const Uint32 white = 0xFFFFFFFF;
503 const Uint32 transparent = 0x00000000;
509 surface = SDL_CreateRGBSurface(0,
w, h, 32, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
513 for (
y = 0;
y < h; ++
y) {
515 for (
x = 0;
x <
w; ++
x) {
521 datab = (datab * 0x0202020202ULL & 0x010884422010ULL) % 1023;
522 maskb = (maskb * 0x0202020202ULL & 0x010884422010ULL) % 1023;
525 *pixel++ = (datab & 0x80) ? white : black;
528 *pixel++ = (datab & 0x80) ? white : transparent;
535 cursor = SDL_CreateColorCursor(
surface, hot_x, hot_y);
546 #define DEF_CURSOR(name, ind) \
548 sdl_std_cursor_array[(int)ind] = sdl_ghost_CreateCursor( \
549 sdl_std_cursor_##name, \
550 sdl_std_cursor_mask_##name, \
551 sdl_std_cursor_WIDTH_##name, \
552 sdl_std_cursor_HEIGHT_##name, \
553 (sdl_std_cursor_WIDTH_##name + (sdl_std_cursor_HOT_X_##name)) - 1, \
554 (sdl_std_cursor_HEIGHT_##name + (sdl_std_cursor_HOT_Y_##name)) - 1); \
555 assert(sdl_std_cursor_array[(int)ind] != nullptr); \
595 if (cursor ==
nullptr) {
599 SDL_SetCursor(cursor);
616 if (m_sdl_custom_cursor) {
617 SDL_FreeCursor(m_sdl_custom_cursor);
621 (
const Uint8 *)bitmap, (
const Uint8 *)
mask, sizex, sizey, hotX, hotY);
623 SDL_SetCursor(m_sdl_custom_cursor);
629 SDL_ShowCursor(visible);
635 int displayIndex = SDL_GetWindowDisplayIndex(m_sdl_win);
636 if (displayIndex < 0) {
641 if (SDL_GetDisplayDPI(displayIndex, &ddpi,
nullptr,
nullptr) != 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
GHOST_TDrawingContextType
@ GHOST_kDrawingContextTypeOpenGL
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 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 type
_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 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)
void setTitle(const char *title)
void screenToClient(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const
GHOST_TSuccess setWindowCursorVisibility(bool visible)
GHOST_TSuccess setWindowCustomCursorShape(uint8_t *bitmap, uint8_t *mask, int sizex, int sizey, int hotX, int hotY, bool canInvertColor)
GHOST_TSuccess hasCursorShape(GHOST_TStandardCursor shape)
GHOST_Context * newDrawingContext(GHOST_TDrawingContextType type)
std::string getTitle() const
GHOST_TSuccess invalidate(void)
GHOST_TWindowState getState() const
void getClientBounds(GHOST_Rect &bounds) const
GHOST_TSuccess setClientWidth(uint32_t width)
GHOST_WindowSDL(GHOST_SystemSDL *system, const char *title, int32_t left, int32_t top, uint32_t width, uint32_t height, GHOST_TWindowState state, GHOST_TDrawingContextType type=GHOST_kDrawingContextTypeNone, const bool stereoVisual=false, const bool exclusive=false, const GHOST_IWindow *parentWindow=NULL)
GHOST_TSuccess setState(GHOST_TWindowState state)
void getWindowBounds(GHOST_Rect &bounds) const
GHOST_TSuccess setClientHeight(uint32_t height)
GHOST_TSuccess setWindowCursorShape(GHOST_TStandardCursor shape)
void clientToScreen(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const
GHOST_TSuccess setWindowCursorGrab(GHOST_TGrabCursorMode mode)
GHOST_TSuccess setClientSize(uint32_t width, uint32_t height)
GHOST_TSuccess setDrawingContextType(GHOST_TDrawingContextType type)
GHOST_TSuccess releaseNativeHandles()
virtual bool getValid() const
struct @211::@212 surface
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)