// 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 MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_ #define MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_ #include <stdint.h> #include "base/memory/scoped_ptr.h" namespace examples { class SpinningCube { public: SpinningCube(); ~SpinningCube(); void Init(uint32_t width, uint32_t height); 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 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<GLState> state_; float fling_multiplier_; int direction_; float color_[3]; }; } // namespace examples #endif // MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_