1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <stdint.h> 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 10a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace examples { 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class SpinningCube { 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SpinningCube(); 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ~SpinningCube(); 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 19a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void Init(uint32_t width, uint32_t height); 20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void set_direction(int direction) { direction_ = direction; } 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void set_color(float r, float g, float b) { 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) color_[0] = r; 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) color_[1] = g; 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) color_[2] = b; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void SetFlingMultiplier(float drag_distance, float drag_time); 27a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void UpdateForTimeDelta(float delta_time); 28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void UpdateForDragDistance(float distance); 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void Draw(); 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void OnGLContextLost(); 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) class GLState; 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void Update(); 37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) bool initialized_; 39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) uint32_t width_; 40a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) uint32_t height_; 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<GLState> state_; 42a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) float fling_multiplier_; 43a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int direction_; 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) float color_[3]; 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace examples 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // MOJO_EXAMPLES_SAMPLE_APP_SPINNING_CUBE_H_ 50