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