| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef EXAMPLES_SPINNING_CUBE_SPINNING_CUBE_H_ |
| #define EXAMPLES_SPINNING_CUBE_SPINNING_CUBE_H_ |
| |
| #include <stdint.h> |
| |
| #include "base/memory/scoped_ptr.h" |
| |
| namespace examples { |
| |
| class GLInterface; |
| |
| class SpinningCube { |
| public: |
| SpinningCube(); |
| ~SpinningCube(); |
| |
| void Init(); |
| void set_direction(int direction) { direction_ = direction; } |
| void set_color(float r, float g, float b) { |
| color_[0] = r; |
| color_[1] = g; |
| color_[2] = b; |
| } |
| void set_size(uint32_t width, uint32_t height) { |
| width_ = width; |
| height_ = height; |
| } |
| void SetFlingMultiplier(float drag_distance, float drag_time); |
| void UpdateForTimeDelta(float delta_time); |
| void UpdateForDragDistance(float distance); |
| void Draw(); |
| |
| void OnGLContextLost(); |
| |
| private: |
| class GLState; |
| |
| void Update(); |
| |
| bool initialized_; |
| uint32_t width_; |
| uint32_t height_; |
| scoped_ptr<GLInterface> gl_; |
| scoped_ptr<GLState> state_; |
| float fling_multiplier_; |
| int direction_; |
| float color_[3]; |
| }; |
| |
| } // namespace examples |
| |
| #endif // EXAMPLES_SPINNING_CUBE_SPINNING_CUBE_H_ |