diff options
Diffstat (limited to 'o3d/core/win')
-rw-r--r-- | o3d/core/win/d3d9/renderer_d3d9.cc | 24 | ||||
-rw-r--r-- | o3d/core/win/d3d9/renderer_d3d9.h | 4 |
2 files changed, 26 insertions, 2 deletions
diff --git a/o3d/core/win/d3d9/renderer_d3d9.cc b/o3d/core/win/d3d9/renderer_d3d9.cc index fe36184..c0a56af 100644 --- a/o3d/core/win/d3d9/renderer_d3d9.cc +++ b/o3d/core/win/d3d9/renderer_d3d9.cc @@ -890,10 +890,14 @@ RendererD3D9::RendererD3D9(ServiceLocator* service_locator) current_d3d_surface_(NULL), current_d3d_depth_surface_(NULL), have_device_(false), - fullscreen_(false), + fullscreen_(false) +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG + , fullscreen_message_font_(NULL), fullscreen_message_line_(NULL), - showing_fullscreen_message_(false) { + showing_fullscreen_message_(false) +#endif +{ // Setup state handlers AddStateHandler(State::kAlphaTestEnableParamName, new StateEnableHandler<D3DRS_ALPHATESTENABLE>); @@ -1037,6 +1041,7 @@ Renderer::InitStatus RendererD3D9::InitPlatformSpecific( } } +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG if (S_OK != D3DXCreateFont(d3d_device_, 27 /* font_height */, @@ -1060,6 +1065,7 @@ Renderer::InitStatus RendererD3D9::InitPlatformSpecific( DLOG(ERROR) << "Failed to initialize line for message background."; return INITIALIZATION_ERROR; } +#endif return SUCCESS; } @@ -1173,6 +1179,7 @@ bool RendererD3D9::InvalidateDeviceObjects() { } } +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG if (fullscreen_message_font_ && S_OK != fullscreen_message_font_->OnLostDevice()) { return false; @@ -1181,6 +1188,8 @@ bool RendererD3D9::InvalidateDeviceObjects() { S_OK != fullscreen_message_line_->OnLostDevice()) { return false; } +#endif + return true; } @@ -1238,6 +1247,8 @@ bool RendererD3D9::RestoreDeviceObjects() { } } } + +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG if (fullscreen_message_font_ && S_OK != fullscreen_message_font_->OnResetDevice()) { return false; @@ -1246,6 +1257,7 @@ bool RendererD3D9::RestoreDeviceObjects() { S_OK != fullscreen_message_line_->OnResetDevice()) { return false; } +#endif return true; } @@ -1412,8 +1424,10 @@ bool RendererD3D9::GoFullscreen(const DisplayWindow& display, windowed = false; } +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG showing_fullscreen_message_ = true; fullscreen_message_timer_.GetElapsedTimeAndReset(); // Reset the timer. +#endif d3d_present_parameters_.FullScreen_RefreshRateInHz = refresh_rate; d3d_present_parameters_.hDeviceWindow = window; @@ -1440,7 +1454,9 @@ bool RendererD3D9::CancelFullscreen(const DisplayWindow& display, const DisplayWindowWindows& platform_display = static_cast<const DisplayWindowWindows&>(display); HWND window = platform_display.hwnd(); +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG showing_fullscreen_message_ = false; +#endif d3d_present_parameters_.FullScreen_RefreshRateInHz = 0; d3d_present_parameters_.hDeviceWindow = window; d3d_present_parameters_.Windowed = true; @@ -1511,6 +1527,7 @@ void RendererD3D9::PlatformSpecificFinishRendering() { back_buffer_surface_ = NULL; back_buffer_depth_surface_ = NULL; +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG if (showing_fullscreen_message_) { // Message should display for 3 seconds after transition to fullscreen. float elapsed_time = @@ -1525,6 +1542,7 @@ void RendererD3D9::PlatformSpecificFinishRendering() { } } } +#endif } } @@ -1541,6 +1559,7 @@ void RendererD3D9::PlatformSpecificPresent() { void RendererD3D9::ApplyDirtyStates() { } +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG // TODO(gman): Why is this code in here? Shouldn't this use O3D to render this // instead of D3D? void RendererD3D9::ShowFullscreenMessage(float elapsed_time, @@ -1599,6 +1618,7 @@ void RendererD3D9::ShowFullscreenMessage(float elapsed_time, d3d_device_->SetRenderState(D3DRS_ZENABLE, z_enable); } +#endif void RendererD3D9::SetRenderSurfacesPlatformSpecific( const RenderSurface* surface, diff --git a/o3d/core/win/d3d9/renderer_d3d9.h b/o3d/core/win/d3d9/renderer_d3d9.h index cd62c5c..6fe3225 100644 --- a/o3d/core/win/d3d9/renderer_d3d9.h +++ b/o3d/core/win/d3d9/renderer_d3d9.h @@ -242,12 +242,14 @@ class RendererD3D9 : public Renderer { // Indicates we're rendering fullscreen rather than in the plugin region. bool fullscreen_; +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG // Indicates we're showing the "Press Escape..." banner. bool showing_fullscreen_message_; // We want to show the message for about 3 seconds. ElapsedTimeTimer fullscreen_message_timer_; // Draws the actual message. void ShowFullscreenMessage(float elapsedTime, float display_duration); +#endif // Invalidates all resources which are in D3DPOOL_DEFAULT. // Used before we try to reset the device, when the device is lost. @@ -269,10 +271,12 @@ class RendererD3D9 : public Renderer { // Returns true on success. bool ResetDevice(); +#ifdef O3D_PLUGIN_ENABLE_FULLSCREEN_MSG // The font to use to display the message when we go to fullscreen. CComPtr<ID3DXFont> fullscreen_message_font_; // The line used to draw the background for the message. CComPtr<ID3DXLine> fullscreen_message_line_; +#endif }; } // namespace o3d |