19d4cc2572d37983607df38b0f4216ed76ac51814sm/* 29d4cc2572d37983607df38b0f4216ed76ac51814sm * Copyright (C) 2010 The Android Open Source Project 39d4cc2572d37983607df38b0f4216ed76ac51814sm * 49d4cc2572d37983607df38b0f4216ed76ac51814sm * Licensed under the Apache License, Version 2.0 (the "License"); 59d4cc2572d37983607df38b0f4216ed76ac51814sm * you may not use this file except in compliance with the License. 69d4cc2572d37983607df38b0f4216ed76ac51814sm * You may obtain a copy of the License at 79d4cc2572d37983607df38b0f4216ed76ac51814sm * 89d4cc2572d37983607df38b0f4216ed76ac51814sm * http://www.apache.org/licenses/LICENSE-2.0 99d4cc2572d37983607df38b0f4216ed76ac51814sm * 109d4cc2572d37983607df38b0f4216ed76ac51814sm * Unless required by applicable law or agreed to in writing, software 119d4cc2572d37983607df38b0f4216ed76ac51814sm * distributed under the License is distributed on an "AS IS" BASIS, 129d4cc2572d37983607df38b0f4216ed76ac51814sm * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139d4cc2572d37983607df38b0f4216ed76ac51814sm * See the License for the specific language governing permissions and 149d4cc2572d37983607df38b0f4216ed76ac51814sm * limitations under the License. 159d4cc2572d37983607df38b0f4216ed76ac51814sm */ 169d4cc2572d37983607df38b0f4216ed76ac51814sm 179d4cc2572d37983607df38b0f4216ed76ac51814sm 189d4cc2572d37983607df38b0f4216ed76ac51814smpackage com.replica.replicaisland; 199d4cc2572d37983607df38b0f4216ed76ac51814sm 209d4cc2572d37983607df38b0f4216ed76ac51814smpublic class FrameRateWatcherComponent extends GameComponent { 219d4cc2572d37983607df38b0f4216ed76ac51814sm private RenderComponent mRenderComponent; 229d4cc2572d37983607df38b0f4216ed76ac51814sm private DrawableObject mDrawable; 239d4cc2572d37983607df38b0f4216ed76ac51814sm private float mMaxFrameTime = 1.0f / 30.0f; 249d4cc2572d37983607df38b0f4216ed76ac51814sm 259d4cc2572d37983607df38b0f4216ed76ac51814sm public FrameRateWatcherComponent() { 269d4cc2572d37983607df38b0f4216ed76ac51814sm super(); 279d4cc2572d37983607df38b0f4216ed76ac51814sm setPhase(GameComponent.ComponentPhases.THINK.ordinal()); 289d4cc2572d37983607df38b0f4216ed76ac51814sm } 299d4cc2572d37983607df38b0f4216ed76ac51814sm 309d4cc2572d37983607df38b0f4216ed76ac51814sm @Override 319d4cc2572d37983607df38b0f4216ed76ac51814sm public void reset() { 329d4cc2572d37983607df38b0f4216ed76ac51814sm mRenderComponent = null; 339d4cc2572d37983607df38b0f4216ed76ac51814sm mDrawable = null; 349d4cc2572d37983607df38b0f4216ed76ac51814sm } 359d4cc2572d37983607df38b0f4216ed76ac51814sm 369d4cc2572d37983607df38b0f4216ed76ac51814sm @Override 379d4cc2572d37983607df38b0f4216ed76ac51814sm public void update(float timeDelta, BaseObject parent) { 389d4cc2572d37983607df38b0f4216ed76ac51814sm if (mRenderComponent != null && mDrawable != null) { 399d4cc2572d37983607df38b0f4216ed76ac51814sm if (timeDelta > mMaxFrameTime) { 409d4cc2572d37983607df38b0f4216ed76ac51814sm mRenderComponent.setDrawable(mDrawable); 419d4cc2572d37983607df38b0f4216ed76ac51814sm } else { 429d4cc2572d37983607df38b0f4216ed76ac51814sm mRenderComponent.setDrawable(null); 439d4cc2572d37983607df38b0f4216ed76ac51814sm } 449d4cc2572d37983607df38b0f4216ed76ac51814sm } 459d4cc2572d37983607df38b0f4216ed76ac51814sm } 469d4cc2572d37983607df38b0f4216ed76ac51814sm 479d4cc2572d37983607df38b0f4216ed76ac51814sm public void setup(RenderComponent render, DrawableObject drawable) { 489d4cc2572d37983607df38b0f4216ed76ac51814sm mRenderComponent = render; 499d4cc2572d37983607df38b0f4216ed76ac51814sm mDrawable = drawable; 509d4cc2572d37983607df38b0f4216ed76ac51814sm } 519d4cc2572d37983607df38b0f4216ed76ac51814sm} 52