Commit f3edc51b authored by gman@google.com's avatar gman@google.com

Make more stuff private in renderer

Review URL: http://codereview.chromium.org/199066

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25805 0039d316-1c4b-4281-b951-d872f2087c98
parent 672606d6
...@@ -99,12 +99,12 @@ bool Renderer::IsForceSoftwareRenderer() { ...@@ -99,12 +99,12 @@ bool Renderer::IsForceSoftwareRenderer() {
} }
Renderer::Renderer(ServiceLocator* service_locator) Renderer::Renderer(ServiceLocator* service_locator)
: current_render_surface_(NULL), : service_locator_(service_locator),
current_depth_surface_(NULL),
current_render_surface_is_back_buffer_(true),
service_locator_(service_locator),
service_(service_locator, this), service_(service_locator, this),
features_(service_locator), features_(service_locator),
current_render_surface_(NULL),
current_depth_surface_(NULL),
current_render_surface_is_back_buffer_(true),
viewport_(0.0f, 0.0f, 1.0f, 1.0f), viewport_(0.0f, 0.0f, 1.0f, 1.0f),
depth_range_(0.0f, 1.0f), depth_range_(0.0f, 1.0f),
write_mask_(0xf), write_mask_(0xf),
...@@ -251,9 +251,8 @@ void Renderer::SetClientSize(int width, int height) { ...@@ -251,9 +251,8 @@ void Renderer::SetClientSize(int width, int height) {
bool Renderer::StartRendering() { bool Renderer::StartRendering() {
DCHECK_GE(start_depth_, 0); DCHECK_GE(start_depth_, 0);
++start_depth_;
bool result = true; bool result = true;
if (start_depth_ == 1) { if (start_depth_ == 0) {
++render_frame_count_; ++render_frame_count_;
rendering_ = true; rendering_ = true;
transforms_culled_ = 0; transforms_culled_ = 0;
...@@ -277,6 +276,9 @@ bool Renderer::StartRendering() { ...@@ -277,6 +276,9 @@ bool Renderer::StartRendering() {
} }
} }
} }
if (result) {
++start_depth_;
}
return result; return result;
} }
...@@ -308,6 +310,9 @@ void Renderer::FinishRendering() { ...@@ -308,6 +310,9 @@ void Renderer::FinishRendering() {
if (start_depth_ == 0) { if (start_depth_ == 0) {
ApplyDirtyStates(); ApplyDirtyStates();
PlatformSpecificFinishRendering(); PlatformSpecificFinishRendering();
// Don't hold pointers to these when we are finished rendering.
current_render_surface_ = NULL;
current_depth_surface_ = NULL;
rendering_ = false; rendering_ = false;
} }
} }
......
...@@ -629,36 +629,10 @@ class Renderer { ...@@ -629,36 +629,10 @@ class Renderer {
// Sets the client's size. Derived classes must call this on Init and Resize. // Sets the client's size. Derived classes must call this on Init and Resize.
void SetClientSize(int width, int height); void SetClientSize(int width, int height);
// The current render surfaces. NULL = no surface. // Calls any registered lost resources callback.
const RenderSurface* current_render_surface_; void CallLostResourcesCallback() const {
const RenderDepthStencilSurface* current_depth_surface_; lost_resources_callback_manager_.Run();
bool current_render_surface_is_back_buffer_; }
Sampler::Ref error_sampler_; // sampler used when one is missing.
Texture::Ref error_texture_; // texture used when one is missing.
Texture::Ref fallback_error_texture_; // texture used when error_texture is
// null.
ParamObject::Ref error_object_; // holds params used for missing textures.
ParamSampler::Ref error_param_sampler_; // A Param for the error sampler.
// Map of State Handlers.
StateHandlerMap state_handler_map_;
// Stack of state params
ParamVectorArray state_param_stacks_;
// Stack of state objects.
StateArray state_stack_;
// State object holding the default state settings.
State::Ref default_state_;
// A State object holding the settings required to be able to clear the
// back buffer.
State::Ref clear_back_buffer_state_;
// Lost Resources Callbacks.
LostResourcesCallbackManager lost_resources_callback_manager_;
int dest_x_offset() const { int dest_x_offset() const {
return dest_x_offset_; return dest_x_offset_;
...@@ -693,6 +667,37 @@ class Renderer { ...@@ -693,6 +667,37 @@ class Renderer {
ServiceImplementation<Renderer> service_; ServiceImplementation<Renderer> service_;
ServiceDependency<Features> features_; ServiceDependency<Features> features_;
// The current render surfaces. NULL = no surface.
const RenderSurface* current_render_surface_;
const RenderDepthStencilSurface* current_depth_surface_;
bool current_render_surface_is_back_buffer_;
Sampler::Ref error_sampler_; // sampler used when one is missing.
Texture::Ref error_texture_; // texture used when one is missing.
Texture::Ref fallback_error_texture_; // texture used when error_texture is
// null.
ParamObject::Ref error_object_; // holds params used for missing textures.
ParamSampler::Ref error_param_sampler_; // A Param for the error sampler.
// Map of State Handlers.
StateHandlerMap state_handler_map_;
// Stack of state params
ParamVectorArray state_param_stacks_;
// Stack of state objects.
StateArray state_stack_;
// State object holding the default state settings.
State::Ref default_state_;
// A State object holding the settings required to be able to clear the
// back buffer.
State::Ref clear_back_buffer_state_;
// Lost Resources Callbacks.
LostResourcesCallbackManager lost_resources_callback_manager_;
// Current viewport setting. // Current viewport setting.
Float4 viewport_; Float4 viewport_;
......
...@@ -1266,7 +1266,7 @@ void RendererD3D9::TestLostDevice() { ...@@ -1266,7 +1266,7 @@ void RendererD3D9::TestLostDevice() {
// Direct3d tells us it is possible to reset the device now.. // Direct3d tells us it is possible to reset the device now..
// So let's attempt a reset! // So let's attempt a reset!
if (ResetDevice()) { if (ResetDevice()) {
lost_resources_callback_manager_.Run(); CallLostResourcesCallback();
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment