Home | History | Annotate | Download | only in compositor_model_bench
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Define the interface for a generic simulation, and a factory method for
      6 // instantiating different models.
      7 
      8 #ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODELS_H_
      9 #define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODELS_H_
     10 
     11 #include "gpu/tools/compositor_model_bench/render_tree.h"
     12 
     13 #include "base/basictypes.h"
     14 #include "base/memory/scoped_ptr.h"
     15 
     16 enum RenderModel {
     17   ForwardRenderModel
     18 };
     19 
     20 const char* ModelToString(RenderModel m);
     21 
     22 class RenderModelSimulator {
     23  public:
     24   virtual ~RenderModelSimulator();
     25   virtual void Update() = 0;
     26   virtual void Resize(int width, int height) = 0;
     27 
     28  protected:
     29   explicit RenderModelSimulator(RenderNode* root);
     30   scoped_ptr<RenderNode> root_;
     31 
     32  private:
     33   DISALLOW_IMPLICIT_CONSTRUCTORS(RenderModelSimulator);
     34 };
     35 
     36 RenderModelSimulator* ConstructSimulationModel(RenderModel model,
     37                                                RenderNode* render_tree_root,
     38                                                int window_width,
     39                                                int window_height);
     40 
     41 #endif  // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODELS_H_
     42 
     43