OLD | NEW |
1 /* Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 #ifndef PPAPI_C_DEV_PPB_FULLSCREEN_DEV_H_ | 5 #ifndef PPAPI_C_DEV_PPB_FULLSCREEN_DEV_H_ |
6 #define PPAPI_C_DEV_PPB_FULLSCREEN_DEV_H_ | 6 #define PPAPI_C_DEV_PPB_FULLSCREEN_DEV_H_ |
7 | 7 |
8 #include "ppapi/c/pp_bool.h" | 8 #include "ppapi/c/pp_bool.h" |
9 #include "ppapi/c/pp_instance.h" | 9 #include "ppapi/c/pp_instance.h" |
| 10 #include "ppapi/c/pp_size.h" |
10 #include "ppapi/c/pp_stdint.h" | 11 #include "ppapi/c/pp_stdint.h" |
11 | 12 |
12 #define PPB_FULLSCREEN_DEV_INTERFACE "PPB_Fullscreen(Dev);0.3" | 13 #define PPB_FULLSCREEN_DEV_INTERFACE "PPB_Fullscreen(Dev);0.4" |
13 | 14 |
14 // Use this interface to change a plugin instance to fullscreen mode. | 15 // Use this interface to change a plugin instance to fullscreen mode. |
15 struct PPB_Fullscreen_Dev { | 16 struct PPB_Fullscreen_Dev { |
16 // Checks whether the plugin instance is currently in fullscreen mode. | 17 // Checks whether the plugin instance is currently in fullscreen mode. |
17 PP_Bool (*IsFullscreen)(PP_Instance instance); | 18 PP_Bool (*IsFullscreen)(PP_Instance instance); |
18 | 19 |
19 // Switches the plugin instance to/from fullscreen mode. Returns PP_TRUE on | 20 // Switches the plugin instance to/from fullscreen mode. Returns PP_TRUE on |
20 // success, PP_FALSE on failure. | 21 // success, PP_FALSE on failure. |
21 // When in fullscreen mode, the plugin will be transparently scaled to the | 22 // This unbinds the current Graphics2D or Surface3D. Pending flushes and |
22 // size of the screen. It will not receive a ViewChanged event, and doesn't | 23 // swapbuffers will execute as if the resource was off-screen. The transition |
23 // need to rebind the graphics context. The pending flushes will execute | 24 // is asynchronous. During the transition, IsFullscreen will return PP_False, |
24 // normally, to the new fullscreen window. | 25 // and no Graphics2D or Surface3D can be bound. The transition ends at the |
| 26 // next DidChangeView. |
| 27 // Note: when switching to and from fullscreen, Context3D and Surface3D |
| 28 // resources need to be re-created. This is a current limitation that will be |
| 29 // lifted in a later revision. |
25 PP_Bool (*SetFullscreen)(PP_Instance instance, PP_Bool fullscreen); | 30 PP_Bool (*SetFullscreen)(PP_Instance instance, PP_Bool fullscreen); |
| 31 |
| 32 // Gets the size of the screen. When going fullscreen, the instance will be |
| 33 // resized to that size. |
| 34 PP_Bool (*GetScreenSize)(PP_Instance instance, struct PP_Size* size); |
26 }; | 35 }; |
27 | 36 |
28 #endif /* PPAPI_C_DEV_PPB_FULLSCREEN_DEV_H_ */ | 37 #endif /* PPAPI_C_DEV_PPB_FULLSCREEN_DEV_H_ */ |
29 | 38 |
OLD | NEW |