diff options
author | gangji@google.com <gangji@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-11 19:02:02 +0000 |
---|---|---|
committer | gangji@google.com <gangji@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-11 19:02:02 +0000 |
commit | b85c6eb45f4df3b3408441ec946d623dfdad0609 (patch) | |
tree | b521ef9b62623f0331f57a1078a60fae30b5e740 /o3d | |
parent | aaed25234a6000a0f35eda3c5c4b1e58d9a401de (diff) | |
download | chromium_src-b85c6eb45f4df3b3408441ec946d623dfdad0609.zip chromium_src-b85c6eb45f4df3b3408441ec946d623dfdad0609.tar.gz chromium_src-b85c6eb45f4df3b3408441ec946d623dfdad0609.tar.bz2 |
Enable O2D fullscreen under Windows.
Review URL: http://codereview.chromium.org/6681005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77836 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d')
-rw-r--r-- | o3d/core/cross/cairo/renderer_cairo.cc | 37 | ||||
-rw-r--r-- | o3d/core/cross/cairo/renderer_cairo.h | 3 |
2 files changed, 33 insertions, 7 deletions
diff --git a/o3d/core/cross/cairo/renderer_cairo.cc b/o3d/core/cross/cairo/renderer_cairo.cc index ba88cd4..d66634c 100644 --- a/o3d/core/cross/cairo/renderer_cairo.cc +++ b/o3d/core/cross/cairo/renderer_cairo.cc @@ -68,7 +68,8 @@ RendererCairo::RendererCairo(ServiceLocator* service_locator) #elif defined(OS_WIN) hwnd_(NULL), #endif - main_surface_(NULL) { + main_surface_(NULL), + fullscreen_(false) { // Don't need to do anything. } @@ -449,8 +450,21 @@ void RendererCairo::SetViewportInPixels(int left, // Returns true on success, false on failure. bool RendererCairo::GoFullscreen(const DisplayWindow& display, int mode_id) { - NOTIMPLEMENTED(); - return false; + if (!fullscreen_) { + DLOG(INFO) << "RendererCairo entering fullscreen"; +#if defined(OS_WIN) + DEVMODE dev_mode; + if (hwnd_ != NULL && + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dev_mode)) { + int width = dev_mode.dmPelsWidth; + int height = dev_mode.dmPelsHeight; + + fullscreen_ = true; + Resize(width, height); + } +#endif + } + return fullscreen_; } // TODO(fransiskusx): Need to implement it later. @@ -463,15 +477,24 @@ bool RendererCairo::GoFullscreen(const DisplayWindow& display, // Returns true on success, false on failure. bool RendererCairo::CancelFullscreen(const DisplayWindow& display, int width, int height) { - NOTIMPLEMENTED(); - return false; +#if defined(OS_WIN) + if (hwnd_ == NULL) { + // Not initialized. + return false; + } +#endif + if (fullscreen_) { + DLOG(INFO) << "RendererCairo exiting fullscreen"; + fullscreen_ = false; + Resize(width, height); + } + return true; } // TODO(fransiskusx): Need to implement it later. // Tells whether we're currently displayed fullscreen or not. bool RendererCairo::fullscreen() const { - NOTIMPLEMENTED(); - return false; + return fullscreen_; } // TODO(fransiskusx): This function is not applicable to 2D rendering. diff --git a/o3d/core/cross/cairo/renderer_cairo.h b/o3d/core/cross/cairo/renderer_cairo.h index 46b7c68..003c88b 100644 --- a/o3d/core/cross/cairo/renderer_cairo.h +++ b/o3d/core/cross/cairo/renderer_cairo.h @@ -247,6 +247,9 @@ class RendererCairo : public Renderer { // Array of Layer LayerList layer_list_; + + // Fullscreen mode. + bool fullscreen_; }; } // namespace o2d |