rsdRuntimeStubs.cpp revision 44bef6fba6244292b751387f3d6c31cca96c28ad
187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams/* 2709a0978ae141198018ca9769f8d96292a8928e6Jason Sams * Copyright (C) 2011-2012 The Android Open Source Project 387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * you may not use this file except in compliance with the License. 687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * You may obtain a copy of the License at 787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 1087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * Unless required by applicable law or agreed to in writing, software 1187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 1287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * See the License for the specific language governing permissions and 1487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * limitations under the License. 1587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams */ 1687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsContext.h" 1887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsScriptC.h" 1987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsMatrix4x4.h" 2087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsMatrix3x3.h" 2187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsMatrix2x2.h" 2287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsRuntime.h" 2387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsdCore.h" 25807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams#include "rsdBcc.h" 2687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 279e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams#include "rsdPath.h" 28b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams#include "rsdAllocation.h" 29414a46166126da6864258bd25ff183f9a3c6261dStephen Hines#include "rsdShaderCache.h" 30414a46166126da6864258bd25ff183f9a3c6261dStephen Hines#include "rsdVertexArray.h" 3187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include <time.h> 3387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsusing namespace android; 3587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsusing namespace android::renderscript; 3687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 37a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float2 __attribute__((ext_vector_type(2))); 38a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float3 __attribute__((ext_vector_type(3))); 39a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float4 __attribute__((ext_vector_type(4))); 405261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double2 __attribute__((ext_vector_type(2))); 415261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double3 __attribute__((ext_vector_type(3))); 425261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double4 __attribute__((ext_vector_type(4))); 43a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char2 __attribute__((ext_vector_type(2))); 44a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char3 __attribute__((ext_vector_type(3))); 45a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char4 __attribute__((ext_vector_type(4))); 46a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar2 __attribute__((ext_vector_type(2))); 47a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar3 __attribute__((ext_vector_type(3))); 48a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar4 __attribute__((ext_vector_type(4))); 49a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef short short2 __attribute__((ext_vector_type(2))); 50a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef short short3 __attribute__((ext_vector_type(3))); 51a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef short short4 __attribute__((ext_vector_type(4))); 52a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned short ushort2 __attribute__((ext_vector_type(2))); 53a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned short ushort3 __attribute__((ext_vector_type(3))); 54a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned short ushort4 __attribute__((ext_vector_type(4))); 55a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int2 __attribute__((ext_vector_type(2))); 56a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int3 __attribute__((ext_vector_type(3))); 57a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int4 __attribute__((ext_vector_type(4))); 58a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint2 __attribute__((ext_vector_type(2))); 59a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint3 __attribute__((ext_vector_type(3))); 60a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint4 __attribute__((ext_vector_type(4))); 61a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef long long long2 __attribute__((ext_vector_type(2))); 62a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef long long long3 __attribute__((ext_vector_type(3))); 63a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef long long long4 __attribute__((ext_vector_type(4))); 64a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned long long ulong2 __attribute__((ext_vector_type(2))); 65a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned long long ulong3 __attribute__((ext_vector_type(3))); 66a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned long long ulong4 __attribute__((ext_vector_type(4))); 6787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 685261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint8_t uchar; 695261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint16_t ushort; 705261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint32_t uint; 710b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_SERVER 725261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint64_t ulong; 730b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif 7487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 75d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#ifdef RS_COMPATIBILITY_LIB 76d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#define OPAQUETYPE(t) \ 77d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray typedef struct { const int* const p; } __attribute__((packed, aligned(4))) t; 78d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 79d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_element) 80d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_type) 81d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_allocation) 82d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_sampler) 83d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_script) 84d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_script_call) 85d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#undef OPAQUETYPE 86d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 877a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hinestypedef enum { 887a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines // Empty to avoid conflicting definitions with RsAllocationCubemapFace 897a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} rs_allocation_cubemap_face; 907a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 91d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murraytypedef struct { 92d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_sec; ///< seconds 93d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_min; ///< minutes 94d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_hour; ///< hours 95d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_mday; ///< day of the month 96d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_mon; ///< month 97d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_year; ///< year 98d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_wday; ///< day of the week 99d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_yday; ///< day of the year 100d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_isdst; ///< daylight savings time 101d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} rs_tm; 102d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#endif 103d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 10487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 10587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Allocation 10687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 10787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 10887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1096a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationSyncAll2(android::renderscript::rs_allocation a, RsAllocationUsageType source) { 110709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 1116a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationSyncAll(rsc, (Allocation*)a.p, source); 11287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 11387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1146a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationSyncAll(android::renderscript::rs_allocation a) { 115709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 1166a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationSyncAll(rsc, (Allocation*)a.p, RS_ALLOCATION_USAGE_SCRIPT); 11787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 11887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1196a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#ifndef RS_COMPATIBILITY_LIB 1206a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1216a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationCopy1DRange(android::renderscript::rs_allocation dstAlloc, 12274a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstOff, 12374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstMip, 12474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t count, 1256a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation srcAlloc, 12674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcOff, uint32_t srcMip) { 127709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 1286a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationCopy1DRange(rsc, (Allocation*)dstAlloc.p, dstOff, dstMip, count, 1296a45ddb32f391060aa05da6ff09c4814d450586eTim Murray (Allocation*)srcAlloc.p, srcOff, srcMip); 13074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} 13174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 1326a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationCopy2DRange(android::renderscript::rs_allocation dstAlloc, 13374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstXoff, uint32_t dstYoff, 13474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstMip, uint32_t dstFace, 13574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t width, uint32_t height, 1366a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation srcAlloc, 13774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcXoff, uint32_t srcYoff, 13874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcMip, uint32_t srcFace) { 139709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 1406a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationCopy2DRange(rsc, (Allocation*)dstAlloc.p, 141a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk dstXoff, dstYoff, dstMip, dstFace, 142a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk width, height, 1436a45ddb32f391060aa05da6ff09c4814d450586eTim Murray (Allocation*)srcAlloc.p, 144a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk srcXoff, srcYoff, srcMip, srcFace); 14574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} 14674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 1476a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationIoSend(android::renderscript::rs_allocation alloc) { 1486a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 1496a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationIoSend(rsc, (Allocation*)alloc.p); 1506a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 1516a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1526a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1536a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationIoReceive(android::renderscript::rs_allocation alloc) { 1546a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 1556a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationIoReceive(rsc, (Allocation*)alloc.p); 1566a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 1576a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1586a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#else 1596a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1606a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationCopy1DRange(::rs_allocation dstAlloc, 1616a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t dstOff, 1626a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t dstMip, 1636a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t count, 1646a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation srcAlloc, 1656a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t srcOff, uint32_t srcMip) { 1666a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 1676a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationCopy1DRange(rsc, (Allocation*)dstAlloc.p, dstOff, dstMip, count, 1686a45ddb32f391060aa05da6ff09c4814d450586eTim Murray (Allocation*)srcAlloc.p, srcOff, srcMip); 1696a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 1706a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1716a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationCopy2DRange(::rs_allocation dstAlloc, 1726a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t dstXoff, uint32_t dstYoff, 1736a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t dstMip, uint32_t dstFace, 1746a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t width, uint32_t height, 1756a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation srcAlloc, 1766a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t srcXoff, uint32_t srcYoff, 1776a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t srcMip, uint32_t srcFace) { 1786a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 1796a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrAllocationCopy2DRange(rsc, (Allocation*)dstAlloc.p, 1806a45ddb32f391060aa05da6ff09c4814d450586eTim Murray dstXoff, dstYoff, dstMip, dstFace, 1816a45ddb32f391060aa05da6ff09c4814d450586eTim Murray width, height, 1826a45ddb32f391060aa05da6ff09c4814d450586eTim Murray (Allocation*)srcAlloc.p, 1836a45ddb32f391060aa05da6ff09c4814d450586eTim Murray srcXoff, srcYoff, srcMip, srcFace); 1846a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 1856a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1866a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationIoSend(Allocation* alloc) { 187709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 188ddceab9a001f07a3395226c5e06e3b420720af0fJason Sams rsrAllocationIoSend(rsc, alloc); 189b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams} 190b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 191b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 1926a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_AllocationIoReceive(Allocation* alloc) { 193709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 194ddceab9a001f07a3395226c5e06e3b420720af0fJason Sams rsrAllocationIoReceive(rsc, alloc); 195b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams} 196b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 1976a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#endif 1986a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1997a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines#ifndef RS_COMPATIBILITY_LIB 20074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 20187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 20287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Context 20387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 20487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 20587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindTexture(ProgramFragment *pf, uint32_t slot, Allocation *a) { 206709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 207709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindTexture(rsc, pf, slot, a); 20887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 20987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 210a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchoukstatic void SC_BindVertexConstant(ProgramVertex *pv, uint32_t slot, Allocation *a) { 211709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 212709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindConstant(rsc, pv, slot, a); 213a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk} 214a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk 215a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchoukstatic void SC_BindFragmentConstant(ProgramFragment *pf, uint32_t slot, Allocation *a) { 216709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 217709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindConstant(rsc, pf, slot, a); 218a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk} 219a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk 22087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindSampler(ProgramFragment *pf, uint32_t slot, Sampler *s) { 221709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 222709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindSampler(rsc, pf, slot, s); 22387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 22487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 22587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramStore(ProgramStore *ps) { 226709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 227709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramStore(rsc, ps); 22887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 22987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 23087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramFragment(ProgramFragment *pf) { 231709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 232709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramFragment(rsc, pf); 23387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 23487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 23587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramVertex(ProgramVertex *pv) { 236709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 237709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramVertex(rsc, pv); 23887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 23987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 24087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramRaster(ProgramRaster *pr) { 241709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 242709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramRaster(rsc, pr); 24387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 24487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 24587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFrameBufferObjectColorTarget(Allocation *a, uint32_t slot) { 246709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 247709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFrameBufferObjectColorTarget(rsc, a, slot); 24887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 24987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 25087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFrameBufferObjectDepthTarget(Allocation *a) { 251709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 252709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFrameBufferObjectDepthTarget(rsc, a); 25387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 25487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 25587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectColorTarget(uint32_t slot) { 256709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 257709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectColorTarget(rsc, slot); 25887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 25987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 26087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectDepthTarget(Context *, Script *) { 261709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 262709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectDepthTarget(rsc); 26387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 26487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 26587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectTargets(Context *, Script *) { 266709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 267709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectTargets(rsc); 26887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 26987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 27087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 27187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 27287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// VP 27387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 27487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 27587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadProjectionMatrix(const rsc_Matrix *m) { 276709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 277709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadProjectionMatrix(rsc, m); 27887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 27987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 28087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadModelMatrix(const rsc_Matrix *m) { 281709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 282709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadModelMatrix(rsc, m); 28387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 28487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 28587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadTextureMatrix(const rsc_Matrix *m) { 286709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 287709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadTextureMatrix(rsc, m); 28887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 28987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 29087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_PfConstantColor(ProgramFragment *pf, float r, float g, float b, float a) { 291709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 292709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPfConstantColor(rsc, pf, r, g, b, a); 29387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 29487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 29587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpGetProjectionMatrix(rsc_Matrix *m) { 296709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 297709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpGetProjectionMatrix(rsc, m); 29887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 29987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 30087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 30187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 30287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Drawing 30387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 30487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 30587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1, 30687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x2, float y2, float z2, float u2, float v2, 30787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x3, float y3, float z3, float u3, float v3, 30887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x4, float y4, float z4, float u4, float v4) { 309709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 310414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 311414a46166126da6864258bd25ff183f9a3c6261dStephen Hines if (!rsc->setupCheck()) { 312414a46166126da6864258bd25ff183f9a3c6261dStephen Hines return; 313414a46166126da6864258bd25ff183f9a3c6261dStephen Hines } 314414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 315414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdHal *dc = (RsdHal *)rsc->mHal.drv; 316414a46166126da6864258bd25ff183f9a3c6261dStephen Hines if (!dc->gl.shaderCache->setup(rsc)) { 317414a46166126da6864258bd25ff183f9a3c6261dStephen Hines return; 318414a46166126da6864258bd25ff183f9a3c6261dStephen Hines } 319414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 320414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("Quad"); 321414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x1, y1, z1); 322414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x2, y2, z2); 323414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x3, y3, z3); 324414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x4, y4, z4); 325414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 326414a46166126da6864258bd25ff183f9a3c6261dStephen Hines float vtx[] = {x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4}; 327414a46166126da6864258bd25ff183f9a3c6261dStephen Hines const float tex[] = {u1,v1, u2,v2, u3,v3, u4,v4}; 328414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 329414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdVertexArray::Attrib attribs[2]; 330e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray attribs[0].set(GL_FLOAT, 3, 12, false, (size_t)vtx, "ATTRIB_position"); 331e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray attribs[1].set(GL_FLOAT, 2, 8, false, (size_t)tex, "ATTRIB_texture0"); 332414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 333414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdVertexArray va(attribs, 2); 334414a46166126da6864258bd25ff183f9a3c6261dStephen Hines va.setup(rsc); 335414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 336414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RSD_CALL_GL(glDrawArrays, GL_TRIANGLE_FAN, 0, 4); 33787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 33887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 33987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawQuad(float x1, float y1, float z1, 34087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x2, float y2, float z2, 34187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x3, float y3, float z3, 34287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x4, float y4, float z4) { 343414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuadTexCoords(x1, y1, z1, 0, 1, 344414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x2, y2, z2, 1, 1, 345414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x3, y3, z3, 1, 0, 346414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x4, y4, z4, 0, 0); 34787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 34887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 34987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawSpriteScreenspace(float x, float y, float z, float w, float h) { 350709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 351414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 352414a46166126da6864258bd25ff183f9a3c6261dStephen Hines ObjectBaseRef<const ProgramVertex> tmp(rsc->getProgramVertex()); 353414a46166126da6864258bd25ff183f9a3c6261dStephen Hines rsc->setProgramVertex(rsc->getDefaultProgramVertex()); 354414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //rsc->setupCheck(); 355414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 356414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //GLint crop[4] = {0, h, w, -h}; 357414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 358414a46166126da6864258bd25ff183f9a3c6261dStephen Hines float sh = rsc->getHeight(); 359414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 360414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuad(x, sh - y, z, 361414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x+w, sh - y, z, 362414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x+w, sh - (y+h), z, 363414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x, sh - (y+h), z); 364414a46166126da6864258bd25ff183f9a3c6261dStephen Hines rsc->setProgramVertex((ProgramVertex *)tmp.get()); 36587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 36687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 36787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawRect(float x1, float y1, float x2, float y2, float z) { 368414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuad(x1, y2, z, x2, y2, z, x2, y1, z, x1, y1, z); 36987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 37087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3719e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsstatic void SC_DrawPath(Path *p) { 372709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 3739e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams rsdPathDraw(rsc, p); 3749e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams} 3759e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 37687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMesh(Mesh *m) { 377709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 378709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMesh(rsc, m); 37987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 38087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMeshPrimitive(Mesh *m, uint32_t primIndex) { 382709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 383709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMeshPrimitive(rsc, m, primIndex); 38487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 38587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMeshPrimitiveRange(Mesh *m, uint32_t primIndex, uint32_t start, uint32_t len) { 387709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 388709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMeshPrimitiveRange(rsc, m, primIndex, start, len); 38987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 39087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeshComputeBoundingBox(Mesh *m, 39287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float *minX, float *minY, float *minZ, 39387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float *maxX, float *maxY, float *maxZ) { 394709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 395709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeshComputeBoundingBox(rsc, m, minX, minY, minZ, maxX, maxY, maxZ); 39687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 39787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 40087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 40187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// 40287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 40387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 40487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 40587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_Color(float r, float g, float b, float a) { 406709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 407709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrColor(rsc, r, g, b, a); 40887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 40987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 41087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_Finish() { 411709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 412653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLFinish(rsc); 41387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 41487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 41587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearColor(float r, float g, float b, float a) { 416709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 417709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPrepareClear(rsc); 418653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLClearColor(rsc, r, g, b, a); 41987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 42087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 42187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearDepth(float v) { 422709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 423709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPrepareClear(rsc); 424653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLClearDepth(rsc, v); 42587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 42687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 42787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_GetWidth() { 428709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 429709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrGetWidth(rsc); 43087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 43187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 43287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_GetHeight() { 433709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 434709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrGetHeight(rsc); 43587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 43687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 43787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawTextAlloc(Allocation *a, int x, int y) { 438709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 439709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawTextAlloc(rsc, a, x, y); 44087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 44187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 44287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawText(const char *text, int x, int y) { 443709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 444709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawText(rsc, text, x, y); 44587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 44687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 44787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeasureTextAlloc(Allocation *a, 44887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams int32_t *left, int32_t *right, int32_t *top, int32_t *bottom) { 449709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 450709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeasureTextAlloc(rsc, a, left, right, top, bottom); 45187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 45287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 45387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeasureText(const char *text, 45487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams int32_t *left, int32_t *right, int32_t *top, int32_t *bottom) { 455709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 456709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeasureText(rsc, text, left, right, top, bottom); 45787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 45887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 45987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFont(Font *f) { 460709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 461709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFont(rsc, f); 46287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 46387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 46487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_FontColor(float r, float g, float b, float a) { 465709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 466709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrFontColor(rsc, r, g, b, a); 46787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 468110f181b7966212a36ef18016f9b81c7322d0a2fJason Sams#endif 46987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 47087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 47187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 47287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// 47387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 47487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4756a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ClearObject(rs_object_base *dst) { 4766a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 4776a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrClearObject(rsc, dst); 4786a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 4796a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#ifndef RS_COMPATIBILITY_LIB 4806a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_SetObject(rs_object_base *dst, rs_object_base src) { 481a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams // ALOGE("SC_SetObject: dst = %p, src = %p", dst, src.p); 482a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams // ALOGE("SC_SetObject: dst[0] = %p", dst[0]); 483a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 4846a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrSetObject(rsc, dst, (ObjectBase*)src.p); 48587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 48687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4874e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifdef __LP64__ 4884e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic void SC_SetObject_ByRef(rs_object_base *dst, rs_object_base *src) { 4894e3633777ac5aadab5358b65b30ad4806432df83Yong Chen // ALOGE("SC_SetObject2: dst = %p, src = %p", dst, src->p); 4904e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 4914e3633777ac5aadab5358b65b30ad4806432df83Yong Chen rsrSetObject(rsc, dst, (ObjectBase*)src->p); 4924e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 4934e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 4944e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 4956a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic bool SC_IsObject(rs_object_base o) { 496709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 4976a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return rsrIsObject(rsc, o); 4986a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 4994e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 5004e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifdef __LP64__ 5014e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic bool SC_IsObject_ByRef(rs_object_base *o) { 5024e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 5034e3633777ac5aadab5358b65b30ad4806432df83Yong Chen return rsrIsObject(rsc, *o); 5044e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 5054e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 5064e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 5076a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#else 5086a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_SetObject(rs_object_base *dst, ObjectBase* src) { 5096a45ddb32f391060aa05da6ff09c4814d450586eTim Murray // ALOGE("SC_SetObject: dst = %p, src = %p", dst, src.p); 5106a45ddb32f391060aa05da6ff09c4814d450586eTim Murray // ALOGE("SC_SetObject: dst[0] = %p", dst[0]); 5116a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 5126a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrSetObject(rsc, dst, src); 51387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 51487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5156a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic bool SC_IsObject(ObjectBase* o) { 516709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 51705ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason Sams return rsrIsObject(rsc, o); 51887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 5196a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#endif 52087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic const Allocation * SC_GetAllocation(const void *ptr) { 524709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 525709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const Script *sc = RsdCpuReference::getTlsScript(); 526807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams return rsdScriptGetAllocationForPointer(rsc, sc, ptr); 52787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 52887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5296a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#ifndef RS_COMPATIBILITY_LIB 5304e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifndef __LP64__ 5316a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAA(android::renderscript::rs_script target, 5326a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation in, 5336a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation out) { 534709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 53544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 53644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes nullptr, 0, nullptr); 537c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams} 5384e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#else 5394e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic void SC_ForEach_SAA(android::renderscript::rs_script *target, 5404e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *in, 5414e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *out) { 5424e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 5434e3633777ac5aadab5358b65b30ad4806432df83Yong Chen rsrForEach(rsc, (Script*)target->p, (Allocation*)in->p, (Allocation*)out->p, NULL, 0, NULL); 5444e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 5454e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 546c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 5474e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifndef __LP64__ 5486a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAU(android::renderscript::rs_script target, 5496a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation in, 5506a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation out, 551c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr) { 552709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 55344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 55444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes usr, 0, nullptr); 55587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 5564e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#else 5574e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic void SC_ForEach_SAAU(android::renderscript::rs_script *target, 5584e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *in, 5594e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *out, 5604e3633777ac5aadab5358b65b30ad4806432df83Yong Chen const void *usr) { 5614e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 5624e3633777ac5aadab5358b65b30ad4806432df83Yong Chen rsrForEach(rsc, (Script*)target->p, (Allocation*)in->p, (Allocation*)out->p, usr, 0, NULL); 5634e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 5644e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 56587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5664e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifndef __LP64__ 5676a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAUS(android::renderscript::rs_script target, 5686a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation in, 5696a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation out, 570c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr, 571c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const RsScriptCall *call) { 572709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 5736a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, usr, 0, call); 57487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 5754e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#else 5764e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic void SC_ForEach_SAAUS(android::renderscript::rs_script *target, 5774e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *in, 5784e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *out, 5794e3633777ac5aadab5358b65b30ad4806432df83Yong Chen const void *usr, 5804e3633777ac5aadab5358b65b30ad4806432df83Yong Chen const RsScriptCall *call) { 5814e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 5824e3633777ac5aadab5358b65b30ad4806432df83Yong Chen rsrForEach(rsc, (Script*)target->p, (Allocation*)in->p, (Allocation*)out->p, usr, 0, call); 5834e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 5844e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 58587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5864e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifndef __LP64__ 5876a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAUL(android::renderscript::rs_script target, 5886a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation in, 5896a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation out, 590c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr, 591c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams uint32_t usrLen) { 592709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 59344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 59444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes usr, usrLen, nullptr); 595c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams} 5964e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#else 5974e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic void SC_ForEach_SAAUL(android::renderscript::rs_script *target, 5984e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *in, 5994e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *out, 6004e3633777ac5aadab5358b65b30ad4806432df83Yong Chen const void *usr, 6014e3633777ac5aadab5358b65b30ad4806432df83Yong Chen uint32_t usrLen) { 6024e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 6034e3633777ac5aadab5358b65b30ad4806432df83Yong Chen rsrForEach(rsc, (Script*)target->p, (Allocation*)in->p, (Allocation*)out->p, usr, usrLen, NULL); 6044e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 6054e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 606c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 6074e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifndef __LP64__ 6086a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAULS(android::renderscript::rs_script target, 6096a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation in, 6106a45ddb32f391060aa05da6ff09c4814d450586eTim Murray android::renderscript::rs_allocation out, 611c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr, 612c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams uint32_t usrLen, 613c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const RsScriptCall *call) { 614709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 6156a45ddb32f391060aa05da6ff09c4814d450586eTim Murray rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, usr, usrLen, call); 616c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams} 6174e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#else 6184e3633777ac5aadab5358b65b30ad4806432df83Yong Chenstatic void SC_ForEach_SAAULS(android::renderscript::rs_script *target, 6194e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *in, 6204e3633777ac5aadab5358b65b30ad4806432df83Yong Chen android::renderscript::rs_allocation *out, 6214e3633777ac5aadab5358b65b30ad4806432df83Yong Chen const void *usr, 6224e3633777ac5aadab5358b65b30ad4806432df83Yong Chen uint32_t usrLen, 6234e3633777ac5aadab5358b65b30ad4806432df83Yong Chen const RsScriptCall *call) { 6244e3633777ac5aadab5358b65b30ad4806432df83Yong Chen Context *rsc = RsdCpuReference::getTlsContext(); 6254e3633777ac5aadab5358b65b30ad4806432df83Yong Chen rsrForEach(rsc, (Script*)target->p, (Allocation*)in->p, (Allocation*)out->p, usr, usrLen, call); 6264e3633777ac5aadab5358b65b30ad4806432df83Yong Chen} 6274e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 6286a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#endif 62987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 63087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 63187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 63287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Time routines 63387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 63487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 63587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic float SC_GetDt() { 636709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 637709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const Script *sc = RsdCpuReference::getTlsScript(); 63887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams return rsrGetDt(rsc, sc); 63987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 64087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 641d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#ifndef RS_COMPATIBILITY_LIB 64287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstime_t SC_Time(time_t *timer) { 643709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 644709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrTime(rsc, timer); 64587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 646d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#else 647d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murraystatic int SC_Time(int *timer) { 648d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 649d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return rsrTime(rsc, (long*)timer); 650d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 651d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#endif 65287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 65387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstm* SC_LocalTime(tm *local, time_t *timer) { 654709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 655709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrLocalTime(rsc, local, timer); 65687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 65787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 65887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsint64_t SC_UptimeMillis() { 659709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 660709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrUptimeMillis(rsc); 66187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 66287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 66387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsint64_t SC_UptimeNanos() { 664709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 665709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrUptimeNanos(rsc); 66687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 66787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 66887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 66987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Message routines 67087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 67187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 672276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesstatic uint32_t SC_ToClient2(int cmdID, const void *data, uint32_t len) { 673709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 674709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClient(rsc, cmdID, data, len); 67587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 67687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 67787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClient(int cmdID) { 678709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 67944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return rsrToClient(rsc, cmdID, (const void *)nullptr, 0); 68087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 68187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 682276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesstatic uint32_t SC_ToClientBlocking2(int cmdID, const void *data, uint32_t len) { 683709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 684709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClientBlocking(rsc, cmdID, data, len); 68587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 68687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 68787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClientBlocking(int cmdID) { 688709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 68944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return rsrToClientBlocking(rsc, cmdID, (const void *)nullptr, 0); 69087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 69187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 69287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 6935261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt1D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x) { 6945261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 6955261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 6965261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 6975261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6985261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 6995261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 7005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 701cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 70244bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7035261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7045261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 705d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize > 0) { 706d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize != e->getVectorSize()) { 707d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 708cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 70944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 710d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 711d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 712d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (dt != e->getType()) { 713d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 714cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 71544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 716d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 7175261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7185261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7195261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 7205261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 7215261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x)]; 7225261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 7235261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7245261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt2D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x, uint32_t y) { 7255261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 7265261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 7275261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 7285261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7295261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 7305261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 7315261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 732cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 73344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7345261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7355261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7365261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (y >= t->getLODDimY(0)) { 7375261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Y %i of %i", y, t->getLODDimY(0)); 738cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 73944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 742d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize > 0) { 743d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize != e->getVectorSize()) { 744d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 745cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 74644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 747d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 748d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 749d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (dt != e->getType()) { 750d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 751cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 75244bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 753d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 7545261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7555261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 7575261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 7585261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t stride = a->mHal.drvState.lod[0].stride; 7595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x) + (y * stride)]; 7605261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 7615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7625261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt3D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x, uint32_t y, uint32_t z) { 7635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 7645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 7655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 7665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 7685261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 7695261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 770cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 77144bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7735261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7745261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (y >= t->getLODDimY(0)) { 7755261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Y %i of %i", y, t->getLODDimY(0)); 776cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 77744bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7795261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7805261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (z >= t->getLODDimZ(0)) { 7815261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Z %i of %i", z, t->getLODDimZ(0)); 782cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 78344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7845261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7855261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 786d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize > 0) { 787d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize != e->getVectorSize()) { 788d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 789cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 79044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 791d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 792d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 793d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (dt != e->getType()) { 794d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 795cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 79644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 797d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 7985261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7995261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 8015261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 8025261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t stride = a->mHal.drvState.lod[0].stride; 8035261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x) + (y * stride)]; 8045261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 8055261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8066a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic const void * SC_GetElementAt1D(android::renderscript::rs_allocation a, uint32_t x) { 8076a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return ElementAt1D((Allocation*)a.p, RS_TYPE_UNSIGNED_8, 0, x); 808d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 8096a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic const void * SC_GetElementAt2D(android::renderscript::rs_allocation a, uint32_t x, uint32_t y) { 8106a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return ElementAt2D((Allocation*)a.p, RS_TYPE_UNSIGNED_8, 0, x, y); 811d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 8126a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic const void * SC_GetElementAt3D(android::renderscript::rs_allocation a, uint32_t x, uint32_t y, uint32_t z) { 8136a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return ElementAt3D((Allocation*)a.p, RS_TYPE_UNSIGNED_8, 0, x, y, z); 814d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 815d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 8166a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_SetElementAt1D(android::renderscript::rs_allocation a, const void *ptr, uint32_t x) { 8176a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const Type *t = ((Allocation*)a.p)->getType(); 818d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams const Element *e = t->getElement(); 8196a45ddb32f391060aa05da6ff09c4814d450586eTim Murray void *tmp = ElementAt1D((Allocation*)a.p, RS_TYPE_UNSIGNED_8, 0, x); 82044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (tmp != nullptr) { 821d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams memcpy(tmp, ptr, e->getSizeBytes()); 822d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 823d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 8246a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_SetElementAt2D(android::renderscript::rs_allocation a, const void *ptr, uint32_t x, uint32_t y) { 8256a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const Type *t = ((Allocation*)a.p)->getType(); 826d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams const Element *e = t->getElement(); 8276a45ddb32f391060aa05da6ff09c4814d450586eTim Murray void *tmp = ElementAt2D((Allocation*)a.p, RS_TYPE_UNSIGNED_8, 0, x, y); 82844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (tmp != nullptr) { 829d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams memcpy(tmp, ptr, e->getSizeBytes()); 830d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 831d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 8326a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_SetElementAt3D(android::renderscript::rs_allocation a, const void *ptr, uint32_t x, uint32_t y, uint32_t z) { 8336a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const Type *t = ((Allocation*)a.p)->getType(); 834d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams const Element *e = t->getElement(); 8356a45ddb32f391060aa05da6ff09c4814d450586eTim Murray void *tmp = ElementAt3D((Allocation*)a.p, RS_TYPE_UNSIGNED_8, 0, x, y, z); 83644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (tmp != nullptr) { 837d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams memcpy(tmp, ptr, e->getSizeBytes()); 838d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 839d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 840d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 8415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams#define ELEMENT_AT(T, DT, VS) \ 8426a45ddb32f391060aa05da6ff09c4814d450586eTim Murray static void SC_SetElementAt1_##T(android::renderscript::rs_allocation a, const T *val, uint32_t x) { \ 84344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes void *r = ElementAt1D((Allocation*)a.p, DT, VS, x); \ 84444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) ((T *)r)[0] = *val; \ 8455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 8465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 8476a45ddb32f391060aa05da6ff09c4814d450586eTim Murray static void SC_SetElementAt2_##T(android::renderscript::rs_allocation a, const T * val, uint32_t x, uint32_t y) { \ 84844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes void *r = ElementAt2D((Allocation*)a.p, DT, VS, x, y); \ 84944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) ((T *)r)[0] = *val; \ 8505261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 8515261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 8526a45ddb32f391060aa05da6ff09c4814d450586eTim Murray static void SC_SetElementAt3_##T(android::renderscript::rs_allocation a, const T * val, uint32_t x, uint32_t y, uint32_t z) { \ 85344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes void *r = ElementAt3D((Allocation*)a.p, DT, VS, x, y, z); \ 85444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) ((T *)r)[0] = *val; \ 8555261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 8565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 8576a45ddb32f391060aa05da6ff09c4814d450586eTim Murray static void SC_GetElementAt1_##T(android::renderscript::rs_allocation a, T *val, uint32_t x) { \ 85844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes void *r = ElementAt1D((Allocation*)a.p, DT, VS, x); \ 85944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) *val = ((T *)r)[0]; \ 86044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 8615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 8626a45ddb32f391060aa05da6ff09c4814d450586eTim Murray static void SC_GetElementAt2_##T(android::renderscript::rs_allocation a, T *val, uint32_t x, uint32_t y) { \ 86344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes void *r = ElementAt2D((Allocation*)a.p, DT, VS, x, y); \ 86444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) *val = ((T *)r)[0]; \ 86544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 86644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes } \ 8676a45ddb32f391060aa05da6ff09c4814d450586eTim Murray static void SC_GetElementAt3_##T(android::renderscript::rs_allocation a, T *val, uint32_t x, uint32_t y, uint32_t z) { \ 86844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes void *r = ElementAt3D((Allocation*)a.p, DT, VS, x, y, z); \ 86944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) *val = ((T *)r)[0]; \ 87044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 8715261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 8725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8735261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char, RS_TYPE_SIGNED_8, 1) 8745261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char2, RS_TYPE_SIGNED_8, 2) 8755261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char3, RS_TYPE_SIGNED_8, 3) 8765261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char4, RS_TYPE_SIGNED_8, 4) 8775261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar, RS_TYPE_UNSIGNED_8, 1) 8785261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar2, RS_TYPE_UNSIGNED_8, 2) 8795261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar3, RS_TYPE_UNSIGNED_8, 3) 8805261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar4, RS_TYPE_UNSIGNED_8, 4) 8815261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short, RS_TYPE_SIGNED_16, 1) 8825261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short2, RS_TYPE_SIGNED_16, 2) 8835261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short3, RS_TYPE_SIGNED_16, 3) 8845261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short4, RS_TYPE_SIGNED_16, 4) 8855261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort, RS_TYPE_UNSIGNED_16, 1) 8865261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort2, RS_TYPE_UNSIGNED_16, 2) 8875261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort3, RS_TYPE_UNSIGNED_16, 3) 8885261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort4, RS_TYPE_UNSIGNED_16, 4) 8895261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int, RS_TYPE_SIGNED_32, 1) 8905261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int2, RS_TYPE_SIGNED_32, 2) 8915261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int3, RS_TYPE_SIGNED_32, 3) 8925261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int4, RS_TYPE_SIGNED_32, 4) 8935261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint, RS_TYPE_UNSIGNED_32, 1) 8945261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint2, RS_TYPE_UNSIGNED_32, 2) 8955261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint3, RS_TYPE_UNSIGNED_32, 3) 8965261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint4, RS_TYPE_UNSIGNED_32, 4) 8975261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long, RS_TYPE_SIGNED_64, 1) 8985261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long2, RS_TYPE_SIGNED_64, 2) 8995261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long3, RS_TYPE_SIGNED_64, 3) 9005261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long4, RS_TYPE_SIGNED_64, 4) 9015261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong, RS_TYPE_UNSIGNED_64, 1) 9025261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong2, RS_TYPE_UNSIGNED_64, 2) 9035261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong3, RS_TYPE_UNSIGNED_64, 3) 9045261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong4, RS_TYPE_UNSIGNED_64, 4) 9055261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float, RS_TYPE_FLOAT_32, 1) 9065261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float2, RS_TYPE_FLOAT_32, 2) 9075261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float3, RS_TYPE_FLOAT_32, 3) 9085261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float4, RS_TYPE_FLOAT_32, 4) 9095261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double, RS_TYPE_FLOAT_64, 1) 9105261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double2, RS_TYPE_FLOAT_64, 2) 9115261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double3, RS_TYPE_FLOAT_64, 3) 9125261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double4, RS_TYPE_FLOAT_64, 4) 9135261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9145261a5ea546ff358edd5aac7602fc4132434f481Jason Sams#undef ELEMENT_AT 91587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 91687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 91787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Stub implementation 91887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 91987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 92087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// llvm name mangling ref 92187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// <builtin-type> ::= v # void 92287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= b # bool 92387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= c # char 92487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= a # signed char 92587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= h # unsigned char 92687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= s # short 92787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= t # unsigned short 92887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= i # int 92987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= j # unsigned int 93087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= l # long 93187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= m # unsigned long 93287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= x # long long, __int64 93387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= y # unsigned long long, __int64 93487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= f # float 93587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= d # double 93687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 937709a0978ae141198018ca9769f8d96292a8928e6Jason Samsstatic RsdCpuReference::CpuSymbol gSyms[] = { 9385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams // Debug runtime 939d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsGetElementAt13rs_allocationj", (void *)&SC_GetElementAt1D, true }, 940d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsGetElementAt13rs_allocationjj", (void *)&SC_GetElementAt2D, true }, 941d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsGetElementAt13rs_allocationjjj", (void *)&SC_GetElementAt3D, true }, 942d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsSetElementAt13rs_allocationPKvj", (void *)&SC_SetElementAt1D, true }, 943d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsSetElementAt13rs_allocationPKvjj", (void *)&SC_SetElementAt2D, true }, 944d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsSetElementAt13rs_allocationPKvjjj", (void *)&SC_SetElementAt3D, true }, 945d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 946d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 947d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uchar13rs_allocationPhj", (void *)&SC_GetElementAt1_uchar, true }, 948d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar213rs_allocationPDv2_hj", (void *)&SC_GetElementAt1_uchar2, true }, 949d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar313rs_allocationPDv3_hj", (void *)&SC_GetElementAt1_uchar3, true }, 950d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar413rs_allocationPDv4_hj", (void *)&SC_GetElementAt1_uchar4, true }, 951d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uchar13rs_allocationPhjj", (void *)&SC_GetElementAt2_uchar, true }, 952d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar213rs_allocationPDv2_hjj", (void *)&SC_GetElementAt2_uchar2, true }, 953d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar313rs_allocationPDv3_hjj", (void *)&SC_GetElementAt2_uchar3, true }, 954d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar413rs_allocationPDv4_hjj", (void *)&SC_GetElementAt2_uchar4, true }, 955d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uchar13rs_allocationPhjjj", (void *)&SC_GetElementAt3_uchar, true }, 956d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar213rs_allocationPDv2_hjjj", (void *)&SC_GetElementAt3_uchar2, true }, 957d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar313rs_allocationPDv3_hjjj", (void *)&SC_GetElementAt3_uchar3, true }, 958d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar413rs_allocationPDv4_hjjj", (void *)&SC_GetElementAt3_uchar4, true }, 959d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 960d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_char13rs_allocationPcj", (void *)&SC_GetElementAt1_char, true }, 961d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char213rs_allocationPDv2_cj", (void *)&SC_GetElementAt1_char2, true }, 962d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char313rs_allocationPDv3_cj", (void *)&SC_GetElementAt1_char3, true }, 963d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char413rs_allocationPDv4_cj", (void *)&SC_GetElementAt1_char4, true }, 964d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_char13rs_allocationPcjj", (void *)&SC_GetElementAt2_char, true }, 965d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char213rs_allocationPDv2_cjj", (void *)&SC_GetElementAt2_char2, true }, 966d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char313rs_allocationPDv3_cjj", (void *)&SC_GetElementAt2_char3, true }, 967d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char413rs_allocationPDv4_cjj", (void *)&SC_GetElementAt2_char4, true }, 968d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_char13rs_allocationPcjjj", (void *)&SC_GetElementAt3_char, true }, 969d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char213rs_allocationPDv2_cjjj", (void *)&SC_GetElementAt3_char2, true }, 970d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char313rs_allocationPDv3_cjjj", (void *)&SC_GetElementAt3_char3, true }, 971d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char413rs_allocationPDv4_cjjj", (void *)&SC_GetElementAt3_char4, true }, 972d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 973d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ushort13rs_allocationPtj", (void *)&SC_GetElementAt1_ushort, true }, 974d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort213rs_allocationPDv2_tj", (void *)&SC_GetElementAt1_ushort2, true }, 975d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort313rs_allocationPDv3_tj", (void *)&SC_GetElementAt1_ushort3, true }, 976d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort413rs_allocationPDv4_tj", (void *)&SC_GetElementAt1_ushort4, true }, 977d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ushort13rs_allocationPtjj", (void *)&SC_GetElementAt2_ushort, true }, 978d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort213rs_allocationPDv2_tjj", (void *)&SC_GetElementAt2_ushort2, true }, 979d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort313rs_allocationPDv3_tjj", (void *)&SC_GetElementAt2_ushort3, true }, 980d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort413rs_allocationPDv4_tjj", (void *)&SC_GetElementAt2_ushort4, true }, 981d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ushort13rs_allocationPtjjj", (void *)&SC_GetElementAt3_ushort, true }, 982d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort213rs_allocationPDv2_tjjj", (void *)&SC_GetElementAt3_ushort2, true }, 983d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort313rs_allocationPDv3_tjjj", (void *)&SC_GetElementAt3_ushort3, true }, 984d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort413rs_allocationPDv4_tjjj", (void *)&SC_GetElementAt3_ushort4, true }, 985d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 986d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_short13rs_allocationPsj", (void *)&SC_GetElementAt1_short, true }, 987d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short213rs_allocationPDv2_sj", (void *)&SC_GetElementAt1_short2, true }, 988d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short313rs_allocationPDv3_sj", (void *)&SC_GetElementAt1_short3, true }, 989d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short413rs_allocationPDv4_sj", (void *)&SC_GetElementAt1_short4, true }, 990d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_short13rs_allocationPsjj", (void *)&SC_GetElementAt2_short, true }, 991d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short213rs_allocationPDv2_sjj", (void *)&SC_GetElementAt2_short2, true }, 992d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short313rs_allocationPDv3_sjj", (void *)&SC_GetElementAt2_short3, true }, 993d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short413rs_allocationPDv4_sjj", (void *)&SC_GetElementAt2_short4, true }, 994d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_short13rs_allocationPsjjj", (void *)&SC_GetElementAt3_short, true }, 995d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short213rs_allocationPDv2_sjjj", (void *)&SC_GetElementAt3_short2, true }, 996d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short313rs_allocationPDv3_sjjj", (void *)&SC_GetElementAt3_short3, true }, 997d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short413rs_allocationPDv4_sjjj", (void *)&SC_GetElementAt3_short4, true }, 998d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 999d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_uint13rs_allocationPjj", (void *)&SC_GetElementAt1_uint, true }, 1000d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint213rs_allocationPDv2_jj", (void *)&SC_GetElementAt1_uint2, true }, 1001d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint313rs_allocationPDv3_jj", (void *)&SC_GetElementAt1_uint3, true }, 1002d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint413rs_allocationPDv4_jj", (void *)&SC_GetElementAt1_uint4, true }, 1003d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_uint13rs_allocationPjjj", (void *)&SC_GetElementAt2_uint, true }, 1004d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint213rs_allocationPDv2_jjj", (void *)&SC_GetElementAt2_uint2, true }, 1005d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint313rs_allocationPDv3_jjj", (void *)&SC_GetElementAt2_uint3, true }, 1006d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint413rs_allocationPDv4_jjj", (void *)&SC_GetElementAt2_uint4, true }, 1007d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_uint13rs_allocationPjjjj", (void *)&SC_GetElementAt3_uint, true }, 1008d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint213rs_allocationPDv2_jjjj", (void *)&SC_GetElementAt3_uint2, true }, 1009d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint313rs_allocationPDv3_jjjj", (void *)&SC_GetElementAt3_uint3, true }, 1010d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint413rs_allocationPDv4_jjjj", (void *)&SC_GetElementAt3_uint4, true }, 1011d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1012d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsGetElementAt_int13rs_allocationPij", (void *)&SC_GetElementAt1_int, true }, 1013d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int213rs_allocationPDv2_ij", (void *)&SC_GetElementAt1_int2, true }, 1014d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int313rs_allocationPDv3_ij", (void *)&SC_GetElementAt1_int3, true }, 1015d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int413rs_allocationPDv4_ij", (void *)&SC_GetElementAt1_int4, true }, 1016d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsGetElementAt_int13rs_allocationPijj", (void *)&SC_GetElementAt2_int, true }, 1017d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int213rs_allocationPDv2_ijj", (void *)&SC_GetElementAt2_int2, true }, 1018d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int313rs_allocationPDv3_ijj", (void *)&SC_GetElementAt2_int3, true }, 1019d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int413rs_allocationPDv4_ijj", (void *)&SC_GetElementAt2_int4, true }, 1020d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsGetElementAt_int13rs_allocationPijjj", (void *)&SC_GetElementAt3_int, true }, 1021d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int213rs_allocationPDv2_ijjj", (void *)&SC_GetElementAt3_int2, true }, 1022d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int313rs_allocationPDv3_ijjj", (void *)&SC_GetElementAt3_int3, true }, 1023d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int413rs_allocationPDv4_ijjj", (void *)&SC_GetElementAt3_int4, true }, 1024d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1025d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_ulong13rs_allocationPmj", (void *)&SC_GetElementAt1_ulong, true }, 1026d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong213rs_allocationPDv2_mj", (void *)&SC_GetElementAt1_ulong2, true }, 1027d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong313rs_allocationPDv3_mj", (void *)&SC_GetElementAt1_ulong3, true }, 1028d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong413rs_allocationPDv4_mj", (void *)&SC_GetElementAt1_ulong4, true }, 1029d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_ulong13rs_allocationPmjj", (void *)&SC_GetElementAt2_ulong, true }, 1030d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong213rs_allocationPDv2_mjj", (void *)&SC_GetElementAt2_ulong2, true }, 1031d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong313rs_allocationPDv3_mjj", (void *)&SC_GetElementAt2_ulong3, true }, 1032d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong413rs_allocationPDv4_mjj", (void *)&SC_GetElementAt2_ulong4, true }, 1033d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_ulong13rs_allocationPmjjj", (void *)&SC_GetElementAt3_ulong, true }, 1034d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong213rs_allocationPDv2_mjjj", (void *)&SC_GetElementAt3_ulong2, true }, 1035d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong313rs_allocationPDv3_mjjj", (void *)&SC_GetElementAt3_ulong3, true }, 1036d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong413rs_allocationPDv4_mjjj", (void *)&SC_GetElementAt3_ulong4, true }, 1037d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1038d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_long13rs_allocationPlj", (void *)&SC_GetElementAt1_long, true }, 1039d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long213rs_allocationPDv2_lj", (void *)&SC_GetElementAt1_long2, true }, 1040d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long313rs_allocationPDv3_lj", (void *)&SC_GetElementAt1_long3, true }, 1041d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long413rs_allocationPDv4_lj", (void *)&SC_GetElementAt1_long4, true }, 1042d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_long13rs_allocationPljj", (void *)&SC_GetElementAt2_long, true }, 1043d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long213rs_allocationPDv2_ljj", (void *)&SC_GetElementAt2_long2, true }, 1044d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long313rs_allocationPDv3_ljj", (void *)&SC_GetElementAt2_long3, true }, 1045d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long413rs_allocationPDv4_ljj", (void *)&SC_GetElementAt2_long4, true }, 1046d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_long13rs_allocationPljjj", (void *)&SC_GetElementAt3_long, true }, 1047d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long213rs_allocationPDv2_ljjj", (void *)&SC_GetElementAt3_long2, true }, 1048d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long313rs_allocationPDv3_ljjj", (void *)&SC_GetElementAt3_long3, true }, 1049d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long413rs_allocationPDv4_ljjj", (void *)&SC_GetElementAt3_long4, true }, 1050d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1051d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_float13rs_allocationPfj", (void *)&SC_GetElementAt1_float, true }, 1052d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float213rs_allocationPDv2_fj", (void *)&SC_GetElementAt1_float2, true }, 1053d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float313rs_allocationPDv3_fj", (void *)&SC_GetElementAt1_float3, true }, 1054d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float413rs_allocationPDv4_fj", (void *)&SC_GetElementAt1_float4, true }, 1055d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_float13rs_allocationPfjj", (void *)&SC_GetElementAt2_float, true }, 1056d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float213rs_allocationPDv2_fjj", (void *)&SC_GetElementAt2_float2, true }, 1057d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float313rs_allocationPDv3_fjj", (void *)&SC_GetElementAt2_float3, true }, 1058d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float413rs_allocationPDv4_fjj", (void *)&SC_GetElementAt2_float4, true }, 1059d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_float13rs_allocationPfjjj", (void *)&SC_GetElementAt3_float, true }, 1060d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float213rs_allocationPDv2_fjjj", (void *)&SC_GetElementAt3_float2, true }, 1061d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float313rs_allocationPDv3_fjjj", (void *)&SC_GetElementAt3_float3, true }, 1062d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float413rs_allocationPDv4_fjjj", (void *)&SC_GetElementAt3_float4, true }, 1063d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1064d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_double13rs_allocationPdj", (void *)&SC_GetElementAt1_double, true }, 1065d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double213rs_allocationPDv2_dj", (void *)&SC_GetElementAt1_double2, true }, 1066d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double313rs_allocationPDv3_dj", (void *)&SC_GetElementAt1_double3, true }, 1067d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double413rs_allocationPDv4_dj", (void *)&SC_GetElementAt1_double4, true }, 1068d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_double13rs_allocationPdjj", (void *)&SC_GetElementAt2_double, true }, 1069d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double213rs_allocationPDv2_djj", (void *)&SC_GetElementAt2_double2, true }, 1070d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double313rs_allocationPDv3_djj", (void *)&SC_GetElementAt2_double3, true }, 1071d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double413rs_allocationPDv4_djj", (void *)&SC_GetElementAt2_double4, true }, 1072d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_double13rs_allocationPdjjj", (void *)&SC_GetElementAt3_double, true }, 1073d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double213rs_allocationPDv2_djjj", (void *)&SC_GetElementAt3_double2, true }, 1074d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double313rs_allocationPDv3_djjj", (void *)&SC_GetElementAt3_double3, true }, 1075d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double413rs_allocationPDv4_djjj", (void *)&SC_GetElementAt3_double4, true }, 1076d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1077d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1078d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1079d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uchar13rs_allocationPKhj", (void *)&SC_SetElementAt1_uchar, true }, 1080d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar213rs_allocationPKDv2_hj", (void *)&SC_SetElementAt1_uchar2, true }, 1081d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar313rs_allocationPKDv3_hj", (void *)&SC_SetElementAt1_uchar3, true }, 1082d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar413rs_allocationPKDv4_hj", (void *)&SC_SetElementAt1_uchar4, true }, 1083d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uchar13rs_allocationPKhjj", (void *)&SC_SetElementAt2_uchar, true }, 1084d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar213rs_allocationPKDv2_hjj", (void *)&SC_SetElementAt2_uchar2, true }, 1085d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar313rs_allocationPKDv3_hjj", (void *)&SC_SetElementAt2_uchar3, true }, 1086d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar413rs_allocationPKDv4_hjj", (void *)&SC_SetElementAt2_uchar4, true }, 1087d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uchar13rs_allocationPKhjjj", (void *)&SC_SetElementAt3_uchar, true }, 1088d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar213rs_allocationPKDv2_hjjj", (void *)&SC_SetElementAt3_uchar2, true }, 1089d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar313rs_allocationPKDv3_hjjj", (void *)&SC_SetElementAt3_uchar3, true }, 1090d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar413rs_allocationPKDv4_hjjj", (void *)&SC_SetElementAt3_uchar4, true }, 1091d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1092d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_char13rs_allocationPKcj", (void *)&SC_SetElementAt1_char, true }, 1093d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char213rs_allocationPKDv2_cj", (void *)&SC_SetElementAt1_char2, true }, 1094d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char313rs_allocationPKDv3_cj", (void *)&SC_SetElementAt1_char3, true }, 1095d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char413rs_allocationPKDv4_cj", (void *)&SC_SetElementAt1_char4, true }, 1096d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_char13rs_allocationPKcjj", (void *)&SC_SetElementAt2_char, true }, 1097d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char213rs_allocationPKDv2_cjj", (void *)&SC_SetElementAt2_char2, true }, 1098d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char313rs_allocationPKDv3_cjj", (void *)&SC_SetElementAt2_char3, true }, 1099d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char413rs_allocationPKDv4_cjj", (void *)&SC_SetElementAt2_char4, true }, 1100d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_char13rs_allocationPKcjjj", (void *)&SC_SetElementAt3_char, true }, 1101d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char213rs_allocationPKDv2_cjjj", (void *)&SC_SetElementAt3_char2, true }, 1102d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char313rs_allocationPKDv3_cjjj", (void *)&SC_SetElementAt3_char3, true }, 1103d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char413rs_allocationPKDv4_cjjj", (void *)&SC_SetElementAt3_char4, true }, 1104d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1105d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ushort13rs_allocationPKht", (void *)&SC_SetElementAt1_ushort, true }, 1106d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort213rs_allocationPKDv2_tj", (void *)&SC_SetElementAt1_ushort2, true }, 1107d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort313rs_allocationPKDv3_tj", (void *)&SC_SetElementAt1_ushort3, true }, 1108d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort413rs_allocationPKDv4_tj", (void *)&SC_SetElementAt1_ushort4, true }, 1109d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ushort13rs_allocationPKtjj", (void *)&SC_SetElementAt2_ushort, true }, 1110d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort213rs_allocationPKDv2_tjj", (void *)&SC_SetElementAt2_ushort2, true }, 1111d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort313rs_allocationPKDv3_tjj", (void *)&SC_SetElementAt2_ushort3, true }, 1112d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort413rs_allocationPKDv4_tjj", (void *)&SC_SetElementAt2_ushort4, true }, 1113d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ushort13rs_allocationPKtjjj", (void *)&SC_SetElementAt3_ushort, true }, 1114d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort213rs_allocationPKDv2_tjjj", (void *)&SC_SetElementAt3_ushort2, true }, 1115d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort313rs_allocationPKDv3_tjjj", (void *)&SC_SetElementAt3_ushort3, true }, 1116d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort413rs_allocationPKDv4_tjjj", (void *)&SC_SetElementAt3_ushort4, true }, 1117d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1118d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_short13rs_allocationPKsj", (void *)&SC_SetElementAt1_short, true }, 1119d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short213rs_allocationPKDv2_sj", (void *)&SC_SetElementAt1_short2, true }, 1120d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short313rs_allocationPKDv3_sj", (void *)&SC_SetElementAt1_short3, true }, 1121d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short413rs_allocationPKDv4_sj", (void *)&SC_SetElementAt1_short4, true }, 1122d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_short13rs_allocationPKsjj", (void *)&SC_SetElementAt2_short, true }, 1123d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short213rs_allocationPKDv2_sjj", (void *)&SC_SetElementAt2_short2, true }, 1124d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short313rs_allocationPKDv3_sjj", (void *)&SC_SetElementAt2_short3, true }, 1125d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short413rs_allocationPKDv4_sjj", (void *)&SC_SetElementAt2_short4, true }, 1126d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_short13rs_allocationPKsjjj", (void *)&SC_SetElementAt3_short, true }, 1127d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short213rs_allocationPKDv2_sjjj", (void *)&SC_SetElementAt3_short2, true }, 1128d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short313rs_allocationPKDv3_sjjj", (void *)&SC_SetElementAt3_short3, true }, 1129d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short413rs_allocationPKDv4_sjjj", (void *)&SC_SetElementAt3_short4, true }, 1130d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1131d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_uint13rs_allocationPKjj", (void *)&SC_SetElementAt1_uint, true }, 1132d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint213rs_allocationPKDv2_jj", (void *)&SC_SetElementAt1_uint2, true }, 1133d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint313rs_allocationPKDv3_jj", (void *)&SC_SetElementAt1_uint3, true }, 1134d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint413rs_allocationPKDv4_jj", (void *)&SC_SetElementAt1_uint4, true }, 1135d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_uint13rs_allocationPKjjj", (void *)&SC_SetElementAt2_uint, true }, 1136d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint213rs_allocationPKDv2_jjj", (void *)&SC_SetElementAt2_uint2, true }, 1137d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint313rs_allocationPKDv3_jjj", (void *)&SC_SetElementAt2_uint3, true }, 1138d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint413rs_allocationPKDv4_jjj", (void *)&SC_SetElementAt2_uint4, true }, 1139d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_uint13rs_allocationPKjjjj", (void *)&SC_SetElementAt3_uint, true }, 1140d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint213rs_allocationPKDv2_jjjj", (void *)&SC_SetElementAt3_uint2, true }, 1141d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint313rs_allocationPKDv3_jjjj", (void *)&SC_SetElementAt3_uint3, true }, 1142d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint413rs_allocationPKDv4_jjjj", (void *)&SC_SetElementAt3_uint4, true }, 1143d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1144cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines { "_Z18rsSetElementAt_int13rs_allocationPKij", (void *)&SC_SetElementAt1_int, true }, 1145d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int213rs_allocationPKDv2_ij", (void *)&SC_SetElementAt1_int2, true }, 1146d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int313rs_allocationPKDv3_ij", (void *)&SC_SetElementAt1_int3, true }, 1147d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int413rs_allocationPKDv4_ij", (void *)&SC_SetElementAt1_int4, true }, 1148d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsSetElementAt_int13rs_allocationPKijj", (void *)&SC_SetElementAt2_int, true }, 1149d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int213rs_allocationPKDv2_ijj", (void *)&SC_SetElementAt2_int2, true }, 1150d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int313rs_allocationPKDv3_ijj", (void *)&SC_SetElementAt2_int3, true }, 1151d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int413rs_allocationPKDv4_ijj", (void *)&SC_SetElementAt2_int4, true }, 1152d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsSetElementAt_int13rs_allocationPKijjj", (void *)&SC_SetElementAt3_int, true }, 1153d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int213rs_allocationPKDv2_ijjj", (void *)&SC_SetElementAt3_int2, true }, 1154d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int313rs_allocationPKDv3_ijjj", (void *)&SC_SetElementAt3_int3, true }, 1155d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int413rs_allocationPKDv4_ijjj", (void *)&SC_SetElementAt3_int4, true }, 1156d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1157d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_ulong13rs_allocationPKmt", (void *)&SC_SetElementAt1_ulong, true }, 1158d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_mj", (void *)&SC_SetElementAt1_ulong2, true }, 1159d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_mj", (void *)&SC_SetElementAt1_ulong3, true }, 1160d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_mj", (void *)&SC_SetElementAt1_ulong4, true }, 1161d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_ulong13rs_allocationPKmjj", (void *)&SC_SetElementAt2_ulong, true }, 1162d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_mjj", (void *)&SC_SetElementAt2_ulong2, true }, 1163d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_mjj", (void *)&SC_SetElementAt2_ulong3, true }, 1164d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_mjj", (void *)&SC_SetElementAt2_ulong4, true }, 1165d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_ulong13rs_allocationPKmjjj", (void *)&SC_SetElementAt3_ulong, true }, 1166d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_mjjj", (void *)&SC_SetElementAt3_ulong2, true }, 1167d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_mjjj", (void *)&SC_SetElementAt3_ulong3, true }, 1168d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_mjjj", (void *)&SC_SetElementAt3_ulong4, true }, 1169d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1170d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_long13rs_allocationPKlj", (void *)&SC_SetElementAt1_long, true }, 1171d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long213rs_allocationPKDv2_lj", (void *)&SC_SetElementAt1_long2, true }, 1172d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long313rs_allocationPKDv3_lj", (void *)&SC_SetElementAt1_long3, true }, 1173d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long413rs_allocationPKDv4_lj", (void *)&SC_SetElementAt1_long4, true }, 1174d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_long13rs_allocationPKljj", (void *)&SC_SetElementAt2_long, true }, 1175d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long213rs_allocationPKDv2_ljj", (void *)&SC_SetElementAt2_long2, true }, 1176d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long313rs_allocationPKDv3_ljj", (void *)&SC_SetElementAt2_long3, true }, 1177d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long413rs_allocationPKDv4_ljj", (void *)&SC_SetElementAt2_long4, true }, 1178d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_long13rs_allocationPKljjj", (void *)&SC_SetElementAt3_long, true }, 1179d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long213rs_allocationPKDv2_ljjj", (void *)&SC_SetElementAt3_long2, true }, 1180d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long313rs_allocationPKDv3_ljjj", (void *)&SC_SetElementAt3_long3, true }, 1181d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long413rs_allocationPKDv4_ljjj", (void *)&SC_SetElementAt3_long4, true }, 1182d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1183d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_float13rs_allocationPKft", (void *)&SC_SetElementAt1_float, true }, 1184d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float213rs_allocationPKDv2_fj", (void *)&SC_SetElementAt1_float2, true }, 1185d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float313rs_allocationPKDv3_fj", (void *)&SC_SetElementAt1_float3, true }, 1186d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float413rs_allocationPKDv4_fj", (void *)&SC_SetElementAt1_float4, true }, 1187d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_float13rs_allocationPKfjj", (void *)&SC_SetElementAt2_float, true }, 1188d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float213rs_allocationPKDv2_fjj", (void *)&SC_SetElementAt2_float2, true }, 1189d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float313rs_allocationPKDv3_fjj", (void *)&SC_SetElementAt2_float3, true }, 1190d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float413rs_allocationPKDv4_fjj", (void *)&SC_SetElementAt2_float4, true }, 1191d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_float13rs_allocationPKfjjj", (void *)&SC_SetElementAt3_float, true }, 1192d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float213rs_allocationPKDv2_fjjj", (void *)&SC_SetElementAt3_float2, true }, 1193d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float313rs_allocationPKDv3_fjjj", (void *)&SC_SetElementAt3_float3, true }, 1194d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float413rs_allocationPKDv4_fjjj", (void *)&SC_SetElementAt3_float4, true }, 1195d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1196d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_double13rs_allocationPKdt", (void *)&SC_SetElementAt1_double, true }, 1197d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double213rs_allocationPKDv2_dj", (void *)&SC_SetElementAt1_double2, true }, 1198d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double313rs_allocationPKDv3_dj", (void *)&SC_SetElementAt1_double3, true }, 1199d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double413rs_allocationPKDv4_dj", (void *)&SC_SetElementAt1_double4, true }, 1200d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_double13rs_allocationPKdjj", (void *)&SC_SetElementAt2_double, true }, 1201d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double213rs_allocationPKDv2_djj", (void *)&SC_SetElementAt2_double2, true }, 1202d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double313rs_allocationPKDv3_djj", (void *)&SC_SetElementAt2_double3, true }, 1203d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double413rs_allocationPKDv4_djj", (void *)&SC_SetElementAt2_double4, true }, 1204d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_double13rs_allocationPKdjjj", (void *)&SC_SetElementAt3_double, true }, 1205d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double213rs_allocationPKDv2_djjj", (void *)&SC_SetElementAt3_double2, true }, 1206d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double313rs_allocationPKDv3_djjj", (void *)&SC_SetElementAt3_double3, true }, 1207d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double413rs_allocationPKDv4_djjj", (void *)&SC_SetElementAt3_double4, true }, 12085261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 12095261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 121087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Refcounting 12114e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#ifndef __LP64__ 121287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP10rs_elementS_", (void *)&SC_SetObject, true }, 121387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject10rs_element", (void *)&SC_IsObject, true }, 121487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 121587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_typeS_", (void *)&SC_SetObject, true }, 121687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_type", (void *)&SC_IsObject, true }, 121787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 121887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP13rs_allocationS_", (void *)&SC_SetObject, true }, 121987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject13rs_allocation", (void *)&SC_IsObject, true }, 122087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 122187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP10rs_samplerS_", (void *)&SC_SetObject, true }, 122287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject10rs_sampler", (void *)&SC_IsObject, true }, 122387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 122487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP9rs_scriptS_", (void *)&SC_SetObject, true }, 122587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject9rs_script", (void *)&SC_IsObject, true }, 12264e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#else 12274e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z11rsSetObjectP10rs_elementS_", (void *)&SC_SetObject_ByRef, true }, 12284e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z10rsIsObject10rs_element", (void *)&SC_IsObject_ByRef, true }, 12294e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 12304e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z11rsSetObjectP7rs_typeS_", (void *)&SC_SetObject_ByRef, true }, 12314e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z10rsIsObject7rs_type", (void *)&SC_IsObject_ByRef, true }, 12324e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 12334e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z11rsSetObjectP13rs_allocationS_", (void *)&SC_SetObject_ByRef, true }, 12344e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z10rsIsObject13rs_allocation", (void *)&SC_IsObject_ByRef, true }, 12354e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 12364e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z11rsSetObjectP10rs_samplerS_", (void *)&SC_SetObject_ByRef, true }, 12374e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z10rsIsObject10rs_sampler", (void *)&SC_IsObject_ByRef, true }, 12384e3633777ac5aadab5358b65b30ad4806432df83Yong Chen 12394e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z11rsSetObjectP9rs_scriptS_", (void *)&SC_SetObject_ByRef, true }, 12404e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z10rsIsObject9rs_script", (void *)&SC_IsObject_ByRef, true }, 12414e3633777ac5aadab5358b65b30ad4806432df83Yong Chen#endif 12424e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z13rsClearObjectP10rs_element", (void *)&SC_ClearObject, true }, 12434e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z13rsClearObjectP7rs_type", (void *)&SC_ClearObject, true }, 12444e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z13rsClearObjectP13rs_allocation", (void *)&SC_ClearObject, true }, 12454e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z13rsClearObjectP10rs_sampler", (void *)&SC_ClearObject, true }, 12464e3633777ac5aadab5358b65b30ad4806432df83Yong Chen { "_Z13rsClearObjectP9rs_script", (void *)&SC_ClearObject, true }, 124787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 12489e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z11rsSetObjectP7rs_pathS_", (void *)&SC_SetObject, true }, 12499e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z13rsClearObjectP7rs_path", (void *)&SC_ClearObject, true }, 12509e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z10rsIsObject7rs_path", (void *)&SC_IsObject, true }, 12519e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 125287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_meshS_", (void *)&SC_SetObject, true }, 125387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_mesh", (void *)&SC_ClearObject, true }, 125487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_mesh", (void *)&SC_IsObject, true }, 125587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 125687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP19rs_program_fragmentS_", (void *)&SC_SetObject, true }, 125787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP19rs_program_fragment", (void *)&SC_ClearObject, true }, 125887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject19rs_program_fragment", (void *)&SC_IsObject, true }, 125987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 126087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP17rs_program_vertexS_", (void *)&SC_SetObject, true }, 126187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP17rs_program_vertex", (void *)&SC_ClearObject, true }, 126287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject17rs_program_vertex", (void *)&SC_IsObject, true }, 126387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 126487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP17rs_program_rasterS_", (void *)&SC_SetObject, true }, 126587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP17rs_program_raster", (void *)&SC_ClearObject, true }, 126687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject17rs_program_raster", (void *)&SC_IsObject, true }, 126787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 126887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP16rs_program_storeS_", (void *)&SC_SetObject, true }, 126987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP16rs_program_store", (void *)&SC_ClearObject, true }, 127087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject16rs_program_store", (void *)&SC_IsObject, true }, 127187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 127287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_fontS_", (void *)&SC_SetObject, true }, 127387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_font", (void *)&SC_ClearObject, true }, 127487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_font", (void *)&SC_IsObject, true }, 127587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 127687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Allocation ops 127787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z21rsAllocationMarkDirty13rs_allocation", (void *)&SC_AllocationSyncAll, true }, 127887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgAllocationSyncAll13rs_allocation", (void *)&SC_AllocationSyncAll, false }, 127987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgAllocationSyncAll13rs_allocationj", (void *)&SC_AllocationSyncAll2, false }, 128074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z20rsgAllocationSyncAll13rs_allocation24rs_allocation_usage_type", (void *)&SC_AllocationSyncAll2, false }, 128187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z15rsGetAllocationPKv", (void *)&SC_GetAllocation, true }, 12820b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_COMPATIBILITY_LIB 1283b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams { "_Z18rsAllocationIoSend13rs_allocation", (void *)&SC_AllocationIoSend, false }, 1284b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams { "_Z21rsAllocationIoReceive13rs_allocation", (void *)&SC_AllocationIoReceive, false }, 12850b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif 128674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z23rsAllocationCopy1DRange13rs_allocationjjjS_jj", (void *)&SC_AllocationCopy1DRange, false }, 128774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z23rsAllocationCopy2DRange13rs_allocationjjj26rs_allocation_cubemap_facejjS_jjjS0_", (void *)&SC_AllocationCopy2DRange, false }, 128887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 128987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Messaging 129087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 129187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsSendToClienti", (void *)&SC_ToClient, false }, 129287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsSendToClientiPKvj", (void *)&SC_ToClient2, false }, 129387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsSendToClientBlockingi", (void *)&SC_ToClientBlocking, false }, 129487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsSendToClientBlockingiPKvj", (void *)&SC_ToClientBlocking2, false }, 12950b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_COMPATIBILITY_LIB 129687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsgBindProgramFragment19rs_program_fragment", (void *)&SC_BindProgramFragment, false }, 129787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgBindProgramStore16rs_program_store", (void *)&SC_BindProgramStore, false }, 129887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgBindProgramVertex17rs_program_vertex", (void *)&SC_BindProgramVertex, false }, 129987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgBindProgramRaster17rs_program_raster", (void *)&SC_BindProgramRaster, false }, 130087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgBindSampler19rs_program_fragmentj10rs_sampler", (void *)&SC_BindSampler, false }, 130187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgBindTexture19rs_program_fragmentj13rs_allocation", (void *)&SC_BindTexture, false }, 1302a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk { "_Z15rsgBindConstant19rs_program_fragmentj13rs_allocation", (void *)&SC_BindFragmentConstant, false }, 1303a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk { "_Z15rsgBindConstant17rs_program_vertexj13rs_allocation", (void *)&SC_BindVertexConstant, false }, 130487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 130587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z36rsgProgramVertexLoadProjectionMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadProjectionMatrix, false }, 130687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z31rsgProgramVertexLoadModelMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadModelMatrix, false }, 130787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z33rsgProgramVertexLoadTextureMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadTextureMatrix, false }, 130887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 130987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z35rsgProgramVertexGetProjectionMatrixP12rs_matrix4x4", (void *)&SC_VpGetProjectionMatrix, false }, 131087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 131187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z31rsgProgramFragmentConstantColor19rs_program_fragmentffff", (void *)&SC_PfConstantColor, false }, 131287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 131387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgGetWidthv", (void *)&SC_GetWidth, false }, 131487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z12rsgGetHeightv", (void *)&SC_GetHeight, false }, 131587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 131687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 131787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawRectfffff", (void *)&SC_DrawRect, false }, 131887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawQuadffffffffffff", (void *)&SC_DrawQuad, false }, 131987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgDrawQuadTexCoordsffffffffffffffffffff", (void *)&SC_DrawQuadTexCoords, false }, 132087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z24rsgDrawSpriteScreenspacefffff", (void *)&SC_DrawSpriteScreenspace, false }, 132187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 132287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_mesh", (void *)&SC_DrawMesh, false }, 132387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_meshj", (void *)&SC_DrawMeshPrimitive, false }, 132487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_meshjjj", (void *)&SC_DrawMeshPrimitiveRange, false }, 132587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z25rsgMeshComputeBoundingBox7rs_meshPfS0_S0_S0_S0_S0_", (void *)&SC_MeshComputeBoundingBox, false }, 132687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 13279e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z11rsgDrawPath7rs_path", (void *)&SC_DrawPath, false }, 13289e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 132987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsgClearColorffff", (void *)&SC_ClearColor, false }, 133087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsgClearDepthf", (void *)&SC_ClearDepth, false }, 133187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 133287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawTextPKcii", (void *)&SC_DrawText, false }, 133387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawText13rs_allocationii", (void *)&SC_DrawTextAlloc, false }, 133487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgMeasureTextPKcPiS1_S1_S1_", (void *)&SC_MeasureText, false }, 133587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgMeasureText13rs_allocationPiS0_S0_S0_", (void *)&SC_MeasureTextAlloc, false }, 133687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 133787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgBindFont7rs_font", (void *)&SC_BindFont, false }, 133887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z12rsgFontColorffff", (void *)&SC_FontColor, false }, 133987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 134087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z18rsgBindColorTarget13rs_allocationj", (void *)&SC_BindFrameBufferObjectColorTarget, false }, 134187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z18rsgBindDepthTarget13rs_allocation", (void *)&SC_BindFrameBufferObjectDepthTarget, false }, 134287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgClearColorTargetj", (void *)&SC_ClearFrameBufferObjectColorTarget, false }, 134387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgClearDepthTargetv", (void *)&SC_ClearFrameBufferObjectDepthTarget, false }, 134487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z24rsgClearAllRenderTargetsv", (void *)&SC_ClearFrameBufferObjectTargets, false }, 13456a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 134687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1347aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_", (void *)&SC_ForEach_SAA, true }, 1348aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_PKv", (void *)&SC_ForEach_SAAU, true }, 1349f598811a60088236222bb1879503842094ca378bStephen Hines { "_Z9rsForEach9rs_script13rs_allocationS0_PKvPK14rs_script_call", (void *)&SC_ForEach_SAAUS, true }, 1350aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_PKvj", (void *)&SC_ForEach_SAAUL, true }, 1351f598811a60088236222bb1879503842094ca378bStephen Hines { "_Z9rsForEach9rs_script13rs_allocationS0_PKvjPK14rs_script_call", (void *)&SC_ForEach_SAAULS, true }, 13526a45ddb32f391060aa05da6ff09c4814d450586eTim Murray#endif // RS_COMPATIBILITY_LIB 135387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1354785096e4f1da6a37e3b44203d222b6bb0fb1333eTim Murray#ifndef __LP64__ 135587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // time 135687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z6rsTimePi", (void *)&SC_Time, true }, 135787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsLocaltimeP5rs_tmPKi", (void *)&SC_LocalTime, true }, 1358785096e4f1da6a37e3b44203d222b6bb0fb1333eTim Murray#else 1359785096e4f1da6a37e3b44203d222b6bb0fb1333eTim Murray // time 1360785096e4f1da6a37e3b44203d222b6bb0fb1333eTim Murray { "_Z6rsTimePl", (void *)&SC_Time, true }, 1361785096e4f1da6a37e3b44203d222b6bb0fb1333eTim Murray { "_Z11rsLocaltimeP5rs_tmPKl", (void *)&SC_LocalTime, true }, 1362785096e4f1da6a37e3b44203d222b6bb0fb1333eTim Murray#endif 136387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsUptimeMillisv", (void*)&SC_UptimeMillis, true }, 136487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsUptimeNanosv", (void*)&SC_UptimeNanos, true }, 136587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z7rsGetDtv", (void*)&SC_GetDt, false }, 136687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 136787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // misc 13680b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_COMPATIBILITY_LIB 136987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z5colorffff", (void *)&SC_Color, false }, 137087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z9rsgFinishv", (void *)&SC_Finish, false }, 13710b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif 137287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 137344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes { nullptr, nullptr, false } 137487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams}; 137587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 13760b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifdef RS_COMPATIBILITY_LIB 13770b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1378d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray////////////////////////////////////////////////////////////////////////////// 1379d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray// Compatibility Library entry points 1380d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray////////////////////////////////////////////////////////////////////////////// 1381d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1382f827cadde659212b266b9635128c98515a7dcb01Stephen Hines#define IS_CLEAR_SET_OBJ(t) \ 1383f827cadde659212b266b9635128c98515a7dcb01Stephen Hines bool rsIsObject(t src) { \ 138444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return src.p != nullptr; \ 1385f827cadde659212b266b9635128c98515a7dcb01Stephen Hines } \ 1386d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray void __attribute__((overloadable)) rsClearObject(t *dst) { \ 138705ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason Sams return SC_ClearObject(reinterpret_cast<rs_object_base *>(dst)); \ 1388d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray } \ 1389d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray void __attribute__((overloadable)) rsSetObject(t *dst, t src) { \ 13906a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return SC_SetObject(reinterpret_cast<rs_object_base *>(dst), (ObjectBase*)src.p); \ 1391d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray } 1392d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 139305ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason SamsIS_CLEAR_SET_OBJ(::rs_element) 139405ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason SamsIS_CLEAR_SET_OBJ(::rs_type) 139505ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason SamsIS_CLEAR_SET_OBJ(::rs_allocation) 139605ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason SamsIS_CLEAR_SET_OBJ(::rs_sampler) 139705ef73f2d934f1083cc3b8aeb33fe21de9d6e88fJason SamsIS_CLEAR_SET_OBJ(::rs_script) 1398f827cadde659212b266b9635128c98515a7dcb01Stephen Hines#undef IS_CLEAR_SET_OBJ 1399d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 14006a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAA(::rs_script target, 14016a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation in, 14026a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation out) { 14036a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 140444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 140544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes nullptr, 0, nullptr); 14066a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 14076a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 14086a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAUS(::rs_script target, 14096a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation in, 14106a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation out, 14116a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const void *usr, 14126a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const RsScriptCall *call) { 14136a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 141444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 141544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes usr, 0, call); 14166a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 14176a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 14186a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAUL(::rs_script target, 14196a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation in, 14206a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation out, 14216a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const void *usr, 14226a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t usrLen) { 14236a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 142444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 142544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes usr, usrLen, nullptr); 14266a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 14276a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 14286a45ddb32f391060aa05da6ff09c4814d450586eTim Murraystatic void SC_ForEach_SAAULS(::rs_script target, 14296a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation in, 14306a45ddb32f391060aa05da6ff09c4814d450586eTim Murray ::rs_allocation out, 14316a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const void *usr, 14326a45ddb32f391060aa05da6ff09c4814d450586eTim Murray uint32_t usrLen, 14336a45ddb32f391060aa05da6ff09c4814d450586eTim Murray const RsScriptCall *call) { 14346a45ddb32f391060aa05da6ff09c4814d450586eTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 143544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes rsrForEach(rsc, (Script*)target.p, (Allocation*)in.p, (Allocation*)out.p, 143644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes usr, usrLen, call); 14376a45ddb32f391060aa05da6ff09c4814d450586eTim Murray} 14386a45ddb32f391060aa05da6ff09c4814d450586eTim Murray 1439d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayconst Allocation * rsGetAllocation(const void *ptr) { 1440d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return SC_GetAllocation(ptr); 1441d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1442d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1443a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsAllocationIoSend(::rs_allocation a) { 14447a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines SC_AllocationIoSend((Allocation *)a.p); 14457a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 14467a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 1447a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsAllocationIoReceive(::rs_allocation a) { 14487a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines SC_AllocationIoReceive((Allocation *)a.p); 14497a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 14507a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 14517a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 14527a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hinesvoid __attribute__((overloadable)) rsAllocationCopy1DRange( 1453a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation dstAlloc, 14547a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t dstOff, uint32_t dstMip, uint32_t count, 1455a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation srcAlloc, 14567a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t srcOff, uint32_t srcMip) { 14576a45ddb32f391060aa05da6ff09c4814d450586eTim Murray SC_AllocationCopy1DRange(dstAlloc, dstOff, dstMip, count, 14586a45ddb32f391060aa05da6ff09c4814d450586eTim Murray srcAlloc, srcOff, srcMip); 14597a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 14607a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 14617a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hinesvoid __attribute__((overloadable)) rsAllocationCopy2DRange( 1462a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation dstAlloc, 14637a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t dstXoff, uint32_t dstYoff, 14647a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t dstMip, rs_allocation_cubemap_face dstFace, 14657a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t width, uint32_t height, 1466a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation srcAlloc, 14677a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t srcXoff, uint32_t srcYoff, 14687a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t srcMip, rs_allocation_cubemap_face srcFace) { 14696a45ddb32f391060aa05da6ff09c4814d450586eTim Murray SC_AllocationCopy2DRange(dstAlloc, dstXoff, dstYoff, 14707a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines dstMip, dstFace, width, height, 14716a45ddb32f391060aa05da6ff09c4814d450586eTim Murray srcAlloc, srcXoff, srcYoff, 14727a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines srcMip, srcFace); 14737a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 14747a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 1475a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1476a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1477a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out, 1478d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const void *usr, 1479d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const rs_script_call *call) { 14806a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return SC_ForEach_SAAUS(script, in, out, usr, (RsScriptCall*)call); 1481d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1482d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1483a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1484a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1485a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out) { 14866a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return SC_ForEach_SAA(script, in, out); 1487276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1488276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1489a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1490a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1491a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out, 1492276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines const void *usr, 1493276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines uint32_t usrLen) { 14946a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return SC_ForEach_SAAUL(script, in, out, usr, usrLen); 1495276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1496276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1497a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1498a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1499a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out, 1500d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const void *usr, 1501d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray uint32_t usrLen, 1502d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const rs_script_call *call) { 15036a45ddb32f391060aa05da6ff09c4814d450586eTim Murray return SC_ForEach_SAAULS(script, in, out, usr, usrLen, (RsScriptCall*)call); 1504d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1505d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1506d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayint rsTime(int *timer) { 1507d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return SC_Time(timer); 1508d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1509d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1510d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayrs_tm* rsLocaltime(rs_tm* local, const int *timer) { 1511d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return (rs_tm*)(SC_LocalTime((tm*)local, (long*)timer)); 1512d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1513d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1514d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayint64_t rsUptimeMillis() { 1515d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 1516d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return rsrUptimeMillis(rsc); 1517d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1518d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1519cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hinesint64_t rsUptimeNanos() { 1520cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines return SC_UptimeNanos(); 1521cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines} 1522cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines 1523cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hinesfloat rsGetDt() { 1524cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines return SC_GetDt(); 1525cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines} 1526cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines 1527276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesuint32_t rsSendToClient(int cmdID) { 1528276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClient(cmdID); 1529276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1530276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1531276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesuint32_t rsSendToClient(int cmdID, const void *data, uint32_t len) { 1532276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClient2(cmdID, data, len); 1533d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1534d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 15350b575de8ed0b628d84d256f5846500b0385979bdTim Murrayuint32_t rsSendToClientBlocking(int cmdID) { 1536276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClientBlocking(cmdID); 1537276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1538276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1539276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesuint32_t rsSendToClientBlocking(int cmdID, const void *data, uint32_t len) { 1540276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClientBlocking2(cmdID, data, len); 15410b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15420b575de8ed0b628d84d256f5846500b0385979bdTim Murray 15430b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF(const char *s, float f) { 15440b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, 0x%08x", s, f, *((int *) (&f))); 15450b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15460b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFv2(const char *s, float f1, float f2) { 15470b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f}", s, f1, f2); 15480b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15490b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFv3(const char *s, float f1, float f2, float f3) { 15500b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f}", s, f1, f2, f3); 15510b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15520b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFv4(const char *s, float f1, float f2, float f3, float f4) { 15530b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f, %f}", s, f1, f2, f3, f4); 15540b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15550b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF2(const char *s, float2 f) { 15560b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f}", s, f.x, f.y); 15570b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15580b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF3(const char *s, float3 f) { 15590b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f}", s, f.x, f.y, f.z); 15600b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15610b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF4(const char *s, float4 f) { 15620b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f, %f}", s, f.x, f.y, f.z, f.w); 15630b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15640b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugD(const char *s, double d) { 15650b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, 0x%08llx", s, d, *((long long *) (&d))); 15660b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15670b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFM4v4(const char *s, const float *f) { 15680b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f, %f", s, f[0], f[4], f[8], f[12]); 15690b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f, %f", s, f[1], f[5], f[9], f[13]); 15700b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f, %f", s, f[2], f[6], f[10], f[14]); 15710b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f, %f}", s, f[3], f[7], f[11], f[15]); 15720b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15730b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFM3v3(const char *s, const float *f) { 15740b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f", s, f[0], f[3], f[6]); 15750b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f", s, f[1], f[4], f[7]); 15760b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f}",s, f[2], f[5], f[8]); 15770b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15780b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFM2v2(const char *s, const float *f) { 15790b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f", s, f[0], f[2]); 15800b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f}",s, f[1], f[3]); 15810b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15820b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI8(const char *s, char c) { 15830b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hhd 0x%hhx", s, c, (unsigned char)c); 15840b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15850b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugC2(const char *s, char2 c) { 15860b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhd, %hhd} 0x%hhx 0x%hhx", s, c.x, c.y, (unsigned char)c.x, (unsigned char)c.y); 15870b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15880b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugC3(const char *s, char3 c) { 15890b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhd, %hhd, %hhd} 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, (unsigned char)c.x, (unsigned char)c.y, (unsigned char)c.z); 15900b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15910b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugC4(const char *s, char4 c) { 15920b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhd, %hhd, %hhd, %hhd} 0x%hhx 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, c.w, (unsigned char)c.x, (unsigned char)c.y, (unsigned char)c.z, (unsigned char)c.w); 15930b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15940b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugU8(const char *s, unsigned char c) { 15950b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hhu 0x%hhx", s, c, c); 15960b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 15970b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUC2(const char *s, uchar2 c) { 15980b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhu, %hhu} 0x%hhx 0x%hhx", s, c.x, c.y, c.x, c.y); 15990b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16000b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUC3(const char *s, uchar3 c) { 16010b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhu, %hhu, %hhu} 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, c.x, c.y, c.z); 16020b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16030b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUC4(const char *s, uchar4 c) { 16040b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhu, %hhu, %hhu, %hhu} 0x%hhx 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, c.w, c.x, c.y, c.z, c.w); 16050b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16060b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI16(const char *s, short c) { 16070b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hd 0x%hx", s, c, c); 16080b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16090b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugS2(const char *s, short2 c) { 16100b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hd, %hd} 0x%hx 0x%hx", s, c.x, c.y, c.x, c.y); 16110b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16120b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugS3(const char *s, short3 c) { 16130b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hd, %hd, %hd} 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.x, c.y, c.z); 16140b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16150b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugS4(const char *s, short4 c) { 16160b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hd, %hd, %hd, %hd} 0x%hx 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.w, c.x, c.y, c.z, c.w); 16170b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16180b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugU16(const char *s, unsigned short c) { 16190b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hu 0x%hx", s, c, c); 16200b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16210b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUS2(const char *s, ushort2 c) { 16220b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hu, %hu} 0x%hx 0x%hx", s, c.x, c.y, c.x, c.y); 16230b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16240b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUS3(const char *s, ushort3 c) { 16250b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hu, %hu, %hu} 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.x, c.y, c.z); 16260b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16270b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUS4(const char *s, ushort4 c) { 16280b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hu, %hu, %hu, %hu} 0x%hx 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.w, c.x, c.y, c.z, c.w); 16290b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16300b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI32(const char *s, int32_t i) { 16310b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %d 0x%x", s, i, i); 16320b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16330b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI2(const char *s, int2 i) { 16340b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%d, %d} 0x%x 0x%x", s, i.x, i.y, i.x, i.y); 16350b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16360b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI3(const char *s, int3 i) { 16370b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%d, %d, %d} 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.x, i.y, i.z); 16380b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16390b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI4(const char *s, int4 i) { 16400b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%d, %d, %d, %d} 0x%x 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.w, i.x, i.y, i.z, i.w); 16410b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16420b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugU32(const char *s, uint32_t i) { 16430b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %u 0x%x", s, i, i); 16440b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16450b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUI2(const char *s, uint2 i) { 16460b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%u, %u} 0x%x 0x%x", s, i.x, i.y, i.x, i.y); 16470b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16480b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUI3(const char *s, uint3 i) { 16490b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%u, %u, %u} 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.x, i.y, i.z); 16500b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16510b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUI4(const char *s, uint4 i) { 16520b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%u, %u, %u, %u} 0x%x 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.w, i.x, i.y, i.z, i.w); 16530b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16540b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugLL64(const char *s, long long ll) { 16550b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %lld 0x%llx", s, ll, ll); 16560b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16570b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugL2(const char *s, long2 ll) { 16580b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%lld, %lld} 0x%llx 0x%llx", s, ll.x, ll.y, ll.x, ll.y); 16590b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16600b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugL3(const char *s, long3 ll) { 16610b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%lld, %lld, %lld} 0x%llx 0x%llx 0x%llx", s, ll.x, ll.y, ll.z, ll.x, ll.y, ll.z); 16620b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16630b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugL4(const char *s, long4 ll) { 16640b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%lld, %lld, %lld, %lld} 0x%llx 0x%llx 0x%llx 0x%llx", s, ll.x, ll.y, ll.z, ll.w, ll.x, ll.y, ll.z, ll.w); 16650b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16660b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugULL64(const char *s, unsigned long long ll) { 16670b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %llu 0x%llx", s, ll, ll); 16680b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16690b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUL2(const char *s, ulong2 ll) { 16700b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%llu, %llu} 0x%llx 0x%llx", s, ll.x, ll.y, ll.x, ll.y); 16710b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16720b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUL3(const char *s, ulong3 ll) { 16730b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%llu, %llu, %llu} 0x%llx 0x%llx 0x%llx", s, ll.x, ll.y, ll.z, ll.x, ll.y, ll.z); 16740b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16750b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUL4(const char *s, ulong4 ll) { 16760b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%llu, %llu, %llu, %llu} 0x%llx 0x%llx 0x%llx 0x%llx", s, ll.x, ll.y, ll.z, ll.w, ll.x, ll.y, ll.z, ll.w); 16770b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16780b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugP(const char *s, const void *p) { 16790b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %p", s, p); 16800b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16810b575de8ed0b628d84d256f5846500b0385979bdTim Murray 16820b575de8ed0b628d84d256f5846500b0385979bdTim Murray// TODO: allocation ops, messaging, time 16830b575de8ed0b628d84d256f5846500b0385979bdTim Murray 16840b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f) { 16850b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugF(s, f); 16860b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16870b575de8ed0b628d84d256f5846500b0385979bdTim Murray 16880b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f1, float f2) { 16890b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFv2(s, f1, f2); 16900b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16910b575de8ed0b628d84d256f5846500b0385979bdTim Murray 16920b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f1, float f2, float f3) { 16930b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFv3(s, f1, f2, f3); 16940b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16950b575de8ed0b628d84d256f5846500b0385979bdTim Murray 16960b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f1, float f2, float f3, float f4) { 16970b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFv4(s, f1, f2, f3, f4); 16980b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 16990b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1700b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const float2 *f) { 1701b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugF2(s, *f); 17020b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17030b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1704b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const float3 *f) { 1705b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugF3(s, *f); 17060b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17070b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1708b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const float4 *f) { 1709b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugF4(s, *f); 17100b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17110b575de8ed0b628d84d256f5846500b0385979bdTim Murray 17120b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, double d) { 17130b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugD(s, d); 17140b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17150b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1716b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const rs_matrix4x4 *m) { 17170b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFM4v4(s, (float *) m); 17180b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17190b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1720b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const rs_matrix3x3 *m) { 1721d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray SC_debugFM3v3(s, (float *) m); 17220b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17230b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1724b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const rs_matrix2x2 *m) { 1725d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray SC_debugFM2v2(s, (float *) m); 17260b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17270b575de8ed0b628d84d256f5846500b0385979bdTim Murray 17280b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, char c) { 17290b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugI8(s, c); 17300b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17310b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1732b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const char2 *c) { 1733b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugC2(s, *c); 17340b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17350b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1736b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const char3 *c) { 1737b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugC3(s, *c); 17380b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17390b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1740b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const char4 *c) { 1741b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugC4(s, *c); 17420b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17430b575de8ed0b628d84d256f5846500b0385979bdTim Murray 17440b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned char c) { 17450b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugU8(s, c); 17460b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17470b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1748b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uchar2 *c) { 1749b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUC2(s, *c); 17500b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17510b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1752b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uchar3 *c) { 1753b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUC3(s, *c); 17540b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17550b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1756b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uchar4 *c) { 1757b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUC4(s, *c); 17580b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17590b575de8ed0b628d84d256f5846500b0385979bdTim Murray 17600b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, short c) { 17610b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugI16(s, c); 17620b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17630b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1764b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const short2 *c) { 1765b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugS2(s, *c); 17660b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17670b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1768b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const short3 *c) { 1769b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugS3(s, *c); 17700b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17710b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1772b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const short4 *c) { 1773b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugS4(s, *c); 17740b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17750b575de8ed0b628d84d256f5846500b0385979bdTim Murray 17760b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned short c) { 17770b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugU16(s, c); 17780b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17790b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1780b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ushort2 *c) { 1781b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUS2(s, *c); 17820b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17830b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1784b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ushort3 *c) { 1785b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUS3(s, *c); 17860b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17870b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1788b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ushort4 *c) { 1789b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUS4(s, *c); 17900b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17910b575de8ed0b628d84d256f5846500b0385979bdTim Murray 17920b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, int c) { 17930b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugI32(s, c); 17940b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17950b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1796b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const int2 *c) { 1797b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugI2(s, *c); 17980b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 17990b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1800b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const int3 *c) { 1801b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugI3(s, *c); 18020b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18030b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1804b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const int4 *c) { 1805b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugI4(s, *c); 18060b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18070b575de8ed0b628d84d256f5846500b0385979bdTim Murray 18080b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned int c) { 18090b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugU32(s, c); 18100b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18110b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1812b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uint2 *c) { 1813b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUI2(s, *c); 18140b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18150b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1816b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uint3 *c) { 1817b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUI3(s, *c); 18180b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18190b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1820b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uint4 *c) { 1821b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUI4(s, *c); 18220b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18230b575de8ed0b628d84d256f5846500b0385979bdTim Murray 18240b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, long c) { 18250b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugLL64(s, c); 18260b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18270b575de8ed0b628d84d256f5846500b0385979bdTim Murray 18280b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, long long c) { 18290b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugLL64(s, c); 18300b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18310b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1832b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const long2 *c) { 1833b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugL2(s, *c); 18340b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18350b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1836b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const long3 *c) { 1837b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugL3(s, *c); 18380b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18390b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1840b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const long4 *c) { 1841b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugL4(s, *c); 18420b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18430b575de8ed0b628d84d256f5846500b0385979bdTim Murray 18440b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned long c) { 18450b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugULL64(s, c); 18460b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18470b575de8ed0b628d84d256f5846500b0385979bdTim Murray 18480b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned long long c) { 18490b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugULL64(s, c); 18500b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18510b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1852b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ulong2 *c) { 1853b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUL2(s, *c); 18540b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18550b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1856b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ulong3 *c) { 1857b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUL3(s, *c); 18580b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18590b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1860b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ulong4 *c) { 1861b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUL4(s, *c); 18620b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 18630b575de8ed0b628d84d256f5846500b0385979bdTim Murray 1864a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// FIXME: We need to export these function signatures for the compatibility 1865a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// library. The C++ name mangling that LLVM uses for ext_vector_type requires 1866a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// different versions for "long" vs. "long long". Note that the called 1867a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// functions are still using the appropriate 64-bit sizes. 1868a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef long l2 __attribute__((ext_vector_type(2))); 1869a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef long l3 __attribute__((ext_vector_type(3))); 1870a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef long l4 __attribute__((ext_vector_type(4))); 1871a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef unsigned long ul2 __attribute__((ext_vector_type(2))); 1872a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef unsigned long ul3 __attribute__((ext_vector_type(3))); 1873a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef unsigned long ul4 __attribute__((ext_vector_type(4))); 1874a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 1875a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const l2 *c) { 1876a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugL2(s, *(const long2 *)c); 1877a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 1878a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 1879a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const l3 *c) { 1880a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugL3(s, *(const long3 *)c); 1881a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 1882a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 1883a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const l4 *c) { 1884a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugL4(s, *(const long4 *)c); 1885a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 1886a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 1887a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const ul2 *c) { 1888a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugUL2(s, *(const ulong2 *)c); 1889a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 1890a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 1891a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const ul3 *c) { 1892a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugUL3(s, *(const ulong3 *)c); 1893a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 1894a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 1895a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const ul4 *c) { 1896a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugUL4(s, *(const ulong4 *)c); 1897a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 1898a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 18990b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, const void *p) { 19000b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugP(s, p); 19010b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19020b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif // RS_COMPATIBILITY_LIB 190387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1904709a0978ae141198018ca9769f8d96292a8928e6Jason Samsextern const RsdCpuReference::CpuSymbol * rsdLookupRuntimeStub(Context * pContext, char const* name) { 190587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams ScriptC *s = (ScriptC *)pContext; 1906709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const RsdCpuReference::CpuSymbol *syms = gSyms; 190744bef6fba6244292b751387f3d6c31cca96c28adChris Wailes const RsdCpuReference::CpuSymbol *sym = nullptr; 190887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 190987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams if (!sym) { 1910709a0978ae141198018ca9769f8d96292a8928e6Jason Sams while (syms->fnPtr) { 1911709a0978ae141198018ca9769f8d96292a8928e6Jason Sams if (!strcmp(syms->name, name)) { 1912709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return syms; 191387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 191487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams syms++; 191587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 191687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 191787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 191844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 191987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 1920