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 23ed9f210568082dd6d1d8a0c92c693d574d87d545Alex SakhartchoukDevice::Device() { 24ebfb436a49673693b98469683451bd9ede797557Jason Sams mForceSW = false; 25d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 26d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 27ed9f210568082dd6d1d8a0c92c693d574d87d545Alex SakhartchoukDevice::~Device() { 28d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 29d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 30ed9f210568082dd6d1d8a0c92c693d574d87d545Alex Sakhartchoukvoid Device::addContext(Context *rsc) { 31aa7d2884cb563f87294003981e03e37a1abeb961Alex Sakhartchouk mContexts.push(rsc); 32d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 33d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 34ed9f210568082dd6d1d8a0c92c693d574d87d545Alex Sakhartchoukvoid Device::removeContext(Context *rsc) { 35d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams for (size_t idx=0; idx < mContexts.size(); idx++) { 36d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (mContexts[idx] == rsc) { 37d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams mContexts.removeAt(idx); 38d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams break; 39d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 40d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 41d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 42d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 43d9d37cc1b6700923be5ae8c04fbb1b0effc7ab63Jason SamsRsDevice rsDeviceCreate() { 44d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams Device * d = new Device(); 45d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return d; 46d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 47d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 48d9d37cc1b6700923be5ae8c04fbb1b0effc7ab63Jason Samsvoid rsDeviceDestroy(RsDevice dev) { 49d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams Device * d = static_cast<Device *>(dev); 50d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams delete d; 51d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 52d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 53d9d37cc1b6700923be5ae8c04fbb1b0effc7ab63Jason Samsvoid rsDeviceSetConfig(RsDevice dev, RsDeviceParam p, int32_t value) { 54ebfb436a49673693b98469683451bd9ede797557Jason Sams Device * d = static_cast<Device *>(dev); 55ebfb436a49673693b98469683451bd9ede797557Jason Sams if (p == RS_DEVICE_PARAM_FORCE_SOFTWARE_GL) { 56ebfb436a49673693b98469683451bd9ede797557Jason Sams d->mForceSW = value != 0; 57ebfb436a49673693b98469683451bd9ede797557Jason Sams return; 58ebfb436a49673693b98469683451bd9ede797557Jason Sams } 59ebfb436a49673693b98469683451bd9ede797557Jason Sams rsAssert(0); 60ebfb436a49673693b98469683451bd9ede797557Jason Sams} 61ebfb436a49673693b98469683451bd9ede797557Jason Sams 62