19c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase/* 29c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * Copyright (C) 2011 The Android Open Source Project 39c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * 49c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 59c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * you may not use this file except in compliance with the License. 69c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * You may obtain a copy of the License at 79c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * 89c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * http://www.apache.org/licenses/LICENSE-2.0 99c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * 109c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * Unless required by applicable law or agreed to in writing, software 119c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * distributed under the License is distributed on an "AS IS" BASIS, 129c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * See the License for the specific language governing permissions and 149c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase * limitations under the License. 159c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase */ 169c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 179c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase#ifndef ANDROID_HWUI_DISPLAY_LIST_LOG_BUFFER_H 189c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase#define ANDROID_HWUI_DISPLAY_LIST_LOG_BUFFER_H 199c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 209c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase#include <utils/Singleton.h> 217953745dd565167113f8cbfc461bc0521d32d870Romain Guy 229c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase#include <stdio.h> 239c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 249c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haasenamespace android { 259c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haasenamespace uirenderer { 269c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 279c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haaseclass DisplayListLogBuffer: public Singleton<DisplayListLogBuffer> { 289c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase DisplayListLogBuffer(); 299c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase ~DisplayListLogBuffer(); 309c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 319c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase friend class Singleton<DisplayListLogBuffer>; 329c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 339c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haasepublic: 349c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase void writeCommand(int level, int op); 359c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase void writeInt(int value); 369c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase void outputCommands(FILE *file, const char* opNames[]); 379c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 389c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase bool isEmpty() { 399c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase return (mStart == mEnd); 409c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase } 419c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 429c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haaseprivate: 439c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase int *mBufferFirst; // where the memory starts 449c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase int* mStart; // where the current command stream starts 459c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase int* mEnd; // where the current commands end 469c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase int* mBufferLast; // where the buffer memory ends 479c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 489c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase}; 499c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 509c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase}; // namespace uirenderer 519c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase}; // namespace android 529c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase 539c1e23baf5bfbebd1aebbd6d9a18c225325567ceChet Haase#endif // ANDROID_HWUI_DISPLAY_LIST_LOG_BUFFER_H 54