annotate src/video/directfb/SDL_DirectFB_dyn.c @ 3502:98a819296cdc

Whenever a window becomes fullscreen, shown, unminimized, and has input focus it will change the display to the corresponding fullscreen video mode. If it loses any of those properties the desktop mode will be restored.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 01 Dec 2009 08:56:12 +0000
parents d72a0dd80e8b
children f7b03b6838cb
rev   line source
3000
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 modify it under the terms of the GNU Lesser General Public
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13 Lesser General Public License for more details.
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 You should have received a copy of the GNU Lesser General Public
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16 License along with this library; if not, write to the Free Software
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 */
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22 #include "SDL_config.h"
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23
3023
d72a0dd80e8b DirectFB cleanups & simple window manager
Couriersud <couriersud@arcor.de>
parents: 3000
diff changeset
24 #include "SDL_DirectFB_video.h"
3000
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25 #include "SDL_DirectFB_dyn.h"
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27 #ifdef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28 #include "SDL_name.h"
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 #include "SDL_loadso.h"
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31 #define DFB_SYM(ret, name, args, al, func) ret (*name) args;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 static struct _SDL_DirectFB_Symbols
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33 {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34 DFB_SYMS const unsigned int *directfb_major_version;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35 const unsigned int *directfb_minor_version;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36 const unsigned int *directfb_micro_version;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
37 } SDL_DirectFB_Symbols;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38 #undef DFB_SYM
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 #define DFB_SYM(ret, name, args, al, func) ret name args { func SDL_DirectFB_Symbols.name al ; }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41 DFB_SYMS
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 #undef DFB_SYM
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 static void *handle = NULL;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45 int
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46 SDL_DirectFB_LoadLibrary(void)
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
47 {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
48 int retval = 0;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50 if (handle == NULL) {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51 handle = SDL_LoadObject(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC);
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 if (handle != NULL) {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 retval = 1;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54 #define DFB_SYM(ret, name, args, al, func) if (!(SDL_DirectFB_Symbols.name = SDL_LoadFunction(handle, # name))) retval = 0;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55 DFB_SYMS
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 #undef DFB_SYM
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 if (!
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 (SDL_DirectFB_Symbols.directfb_major_version =
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 SDL_LoadFunction(handle, "directfb_major_version")))
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
60 retval = 0;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 if (!
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62 (SDL_DirectFB_Symbols.directfb_minor_version =
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63 SDL_LoadFunction(handle, "directfb_minor_version")))
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 retval = 0;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 if (!
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 (SDL_DirectFB_Symbols.directfb_micro_version =
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67 SDL_LoadFunction(handle, "directfb_micro_version")))
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68 retval = 0;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71 if (retval) {
3023
d72a0dd80e8b DirectFB cleanups & simple window manager
Couriersud <couriersud@arcor.de>
parents: 3000
diff changeset
72 const char *stemp = DirectFBCheckVersion(DIRECTFB_MAJOR_VERSION,
d72a0dd80e8b DirectFB cleanups & simple window manager
Couriersud <couriersud@arcor.de>
parents: 3000
diff changeset
73 DIRECTFB_MINOR_VERSION,
d72a0dd80e8b DirectFB cleanups & simple window manager
Couriersud <couriersud@arcor.de>
parents: 3000
diff changeset
74 DIRECTFB_MICRO_VERSION);
3000
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 /* Version Check */
3023
d72a0dd80e8b DirectFB cleanups & simple window manager
Couriersud <couriersud@arcor.de>
parents: 3000
diff changeset
76 if (stemp != NULL) {
3000
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 fprintf(stderr,
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78 "DirectFB Lib: Version mismatch. Compiled: %d.%d.%d Library %d.%d.%d\n",
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79 DIRECTFB_MAJOR_VERSION, DIRECTFB_MINOR_VERSION,
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 DIRECTFB_MICRO_VERSION,
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 *SDL_DirectFB_Symbols.directfb_major_version,
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82 *SDL_DirectFB_Symbols.directfb_minor_version,
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 *SDL_DirectFB_Symbols.directfb_micro_version);
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
84 retval = 0;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
85 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
86 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
87 if (!retval)
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
88 SDL_DirectFB_UnLoadLibrary();
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
89 return retval;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
90 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
91
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
92 void
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
93 SDL_DirectFB_UnLoadLibrary(void)
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
94 {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
95 if (handle != NULL) {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
96 SDL_UnloadObject(handle);
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
97 handle = NULL;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
98 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
99 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
100
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
101 #else
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
102 int
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
103 SDL_DirectFB_LoadLibrary(void)
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
104 {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
105 return 1;
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
106 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
107
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
108 void
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
109 SDL_DirectFB_UnLoadLibrary(void)
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
110 {
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
111 }
61081db2385a Whoops, missing files from Couriersud's update
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
112 #endif