rsThreadIO.cpp revision a09f11d6c641726b61f80c15230a18d31c146fec
1d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams/* 2d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Copyright (C) 2009 The Android Open Source Project 3d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * 4d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * you may not use this file except in compliance with the License. 6d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * You may obtain a copy of the License at 7d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * 8d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * 10d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Unless required by applicable law or agreed to in writing, software 11d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * See the License for the specific language governing permissions and 14d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * limitations under the License. 15d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams */ 16d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 17d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "rsContext.h" 18d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 19d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <utils/Log.h> 20d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 21d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "rsThreadIO.h" 22d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 23d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android; 24d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android::renderscript; 25d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 26d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsThreadIO *android::renderscript::gIO = NULL; 27d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 28d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsThreadIO::ThreadIO() 29d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 30d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams mToCore.init(16 * 1024); 31d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 32d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 33d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsThreadIO::~ThreadIO() 34d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 35d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 36d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 37a09f11d6c641726b61f80c15230a18d31c146fecJason Samsbool ThreadIO::playCoreCommands(Context *con) 38d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 39d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //LOGE("playCoreCommands 1"); 40d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams uint32_t cmdID = 0; 41d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams uint32_t cmdSize = 0; 42a09f11d6c641726b61f80c15230a18d31c146fecJason Sams bool ret = false; 43d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams while(!mToCore.isEmpty()) { 44a09f11d6c641726b61f80c15230a18d31c146fecJason Sams ret = true; 45d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //LOGE("playCoreCommands 2"); 46d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams const void * data = mToCore.get(&cmdID, &cmdSize); 47d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //LOGE("playCoreCommands 3 %i %i", cmdID, cmdSize); 48d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 49d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams gPlaybackFuncs[cmdID](con, data); 50d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //LOGE("playCoreCommands 4"); 51d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 52d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams mToCore.next(); 53d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //LOGE("playCoreCommands 5"); 54d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 55a09f11d6c641726b61f80c15230a18d31c146fecJason Sams return ret; 56d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 57d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 58d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 59