rsDevice.cpp revision ebfb436a49673693b98469683451bd9ede797557
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 "rsDevice.h" 18d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "rsContext.h" 19d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 20d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android; 21d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android::renderscript; 22d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 23d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsDevice::Device() 24d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 25ebfb436a49673693b98469683451bd9ede797557Jason Sams mForceSW = false; 26d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 27d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 28d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 29d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsDevice::~Device() 30d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 31d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 32d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 33d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 34d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsvoid Device::addContext(Context *rsc) 35d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 36d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams mContexts.add(rsc); 37d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 38d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 39d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsvoid Device::removeContext(Context *rsc) 40d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 41d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams for (size_t idx=0; idx < mContexts.size(); idx++) { 42d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (mContexts[idx] == rsc) { 43d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams mContexts.removeAt(idx); 44d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams break; 45d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 46d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 47d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 48d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 49d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 50d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 51d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsRsDevice rsDeviceCreate() 52d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 53d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams Device * d = new Device(); 54d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return d; 55d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 56d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 57d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsvoid rsDeviceDestroy(RsDevice dev) 58d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 59d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams Device * d = static_cast<Device *>(dev); 60d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams delete d; 61d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 62d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 63d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 64ebfb436a49673693b98469683451bd9ede797557Jason Samsvoid rsDeviceSetConfig(RsDevice dev, RsDeviceParam p, int32_t value) 65ebfb436a49673693b98469683451bd9ede797557Jason Sams{ 66ebfb436a49673693b98469683451bd9ede797557Jason Sams Device * d = static_cast<Device *>(dev); 67ebfb436a49673693b98469683451bd9ede797557Jason Sams if (p == RS_DEVICE_PARAM_FORCE_SOFTWARE_GL) { 68ebfb436a49673693b98469683451bd9ede797557Jason Sams d->mForceSW = value != 0; 69ebfb436a49673693b98469683451bd9ede797557Jason Sams return; 70ebfb436a49673693b98469683451bd9ede797557Jason Sams } 71ebfb436a49673693b98469683451bd9ede797557Jason Sams rsAssert(0); 72ebfb436a49673693b98469683451bd9ede797557Jason Sams} 73ebfb436a49673693b98469683451bd9ede797557Jason Sams 74