Home | History | Annotate | Download | only in sample_app
      1 // Copyright 2013 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 #ifndef MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_
      6 #define MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_
      7 
      8 #include <stdint.h>
      9 
     10 #include "base/memory/scoped_ptr.h"
     11 
     12 namespace mojo {
     13 namespace examples {
     14 
     15 class SpinningCube {
     16  public:
     17   SpinningCube();
     18   ~SpinningCube();
     19 
     20   void Init(uint32_t width, uint32_t height);
     21   void set_direction(int direction) { direction_ = direction; }
     22   void set_color(float r, float g, float b) {
     23     color_[0] = r;
     24     color_[1] = g;
     25     color_[2] = b;
     26   }
     27   void SetFlingMultiplier(float drag_distance, float drag_time);
     28   void UpdateForTimeDelta(float delta_time);
     29   void UpdateForDragDistance(float distance);
     30   void Draw();
     31 
     32   void OnGLContextLost();
     33 
     34  private:
     35   class GLState;
     36 
     37   void Update();
     38 
     39   bool initialized_;
     40   uint32_t width_;
     41   uint32_t height_;
     42   scoped_ptr<GLState> state_;
     43   float fling_multiplier_;
     44   int direction_;
     45   float color_[3];
     46 };
     47 
     48 }  // namespace examples
     49 }  // namespace mojo
     50 
     51 #endif  // MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_
     52