summaryrefslogtreecommitdiffstats
path: root/o3d
diff options
context:
space:
mode:
authorgangji@google.com <gangji@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-11 19:02:02 +0000
committergangji@google.com <gangji@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-11 19:02:02 +0000
commitb85c6eb45f4df3b3408441ec946d623dfdad0609 (patch)
treeb521ef9b62623f0331f57a1078a60fae30b5e740 /o3d
parentaaed25234a6000a0f35eda3c5c4b1e58d9a401de (diff)
downloadchromium_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.cc37
-rw-r--r--o3d/core/cross/cairo/renderer_cairo.h3
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