• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
6 #define PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
7 
8 #include "ppapi/c/pp_stdint.h"
9 
10 class SpinningCube {
11  public:
12   SpinningCube();
13   ~SpinningCube();
14 
15   void Init(uint32_t width, uint32_t height);
set_direction(int direction)16   void set_direction(int direction) { direction_ = direction; }
17   void SetFlingMultiplier(float drag_distance, float drag_time);
18   void UpdateForTimeDelta(float delta_time);
19   void UpdateForDragDistance(float distance);
20   void Draw();
21 
22   void OnGLContextLost();
23 
24  private:
25   class GLState;
26 
27   // Disallow copy and assign.
28   SpinningCube(const SpinningCube& other);
29   SpinningCube& operator=(const SpinningCube& other);
30 
31   void Update();
32 
33   bool initialized_;
34   uint32_t width_;
35   uint32_t height_;
36   // Owned ptr.
37   GLState* state_;
38   float fling_multiplier_;
39   int direction_;
40 };
41 
42 #endif  // PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
43