185d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni/* 285d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * Copyright (C) 2016 The Android Open Source Project 385d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * 485d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * Licensed under the Apache License, Version 2.0 (the "License"); 585d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * you may not use this file except in compliance with the License. 685d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * You may obtain a copy of the License at 785d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * 885d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * http://www.apache.org/licenses/LICENSE-2.0 985d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * 1085d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * Unless required by applicable law or agreed to in writing, software 1185d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * distributed under the License is distributed on an "AS IS" BASIS, 1285d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1385d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * See the License for the specific language governing permissions and 1485d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni * limitations under the License. 1585d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni */ 1685d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni 1785d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#include "rsContext.h" 1885d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni 1985d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#if !defined(RS_SERVER) && !defined(RS_COMPATIBILITY_LIB) 2085d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#include "system/graphics.h" 2185d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#endif 2285d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni 2385d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#ifdef RS_COMPATIBILITY_LIB 2485d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#include "rsCompatibilityLib.h" 2585d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni#endif 2685d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni 2785d0cb112010781ad07b5979f0824b7f0ae3987eYang Niusing namespace android; 2885d0cb112010781ad07b5979f0824b7f0ae3987eYang Niusing namespace android::renderscript; 2985d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni 3085d0cb112010781ad07b5979f0824b7f0ae3987eYang Niextern "C" void rsaTypeGetNativeData(RsContext con, RsType type, uintptr_t *typeData, uint32_t typeDataSize) { 3185d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni rsAssert(typeDataSize == 6); 3285d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni // Pack the data in the follofing way mHal.state.dimX; mHal.state.dimY; mHal.state.dimZ; 3385d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni // mHal.state.lodCount; mHal.state.faces; mElement; into typeData 3485d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni Type *t = static_cast<Type *>(type); 3585d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni 3685d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni (*typeData++) = t->getDimX(); 3785d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni (*typeData++) = t->getDimY(); 3885d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni (*typeData++) = t->getDimZ(); 3985d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni (*typeData++) = t->getDimLOD() ? 1 : 0; 4085d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni (*typeData++) = t->getDimFaces() ? 1 : 0; 4185d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni (*typeData++) = (uintptr_t)t->getElement(); 4285d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni t->getElement()->incUserRef(); 4385d0cb112010781ad07b5979f0824b7f0ae3987eYang Ni} 44