1326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams/* 2326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * Copyright (C) 2007 The Android Open Source Project 3326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * 4326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * you may not use this file except in compliance with the License. 6326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * You may obtain a copy of the License at 7326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * 8326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * 10326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * Unless required by applicable law or agreed to in writing, software 11326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * See the License for the specific language governing permissions and 14326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * limitations under the License. 15326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams */ 16326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 17326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#ifndef RENDER_SCRIPT_H 18326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#define RENDER_SCRIPT_H 19326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 20326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#include <stdint.h> 21326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#include <sys/types.h> 22326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 2366f0a168c4227d4e302f4ffb21ec7e9d7b9ca828Jason Sams#include "rsInternalDefines.h" 246b8552a4f6a44848255d77222e66aa92dd21b1b5Jason Sams 25c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray// Legacy graphics functions 26c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray// Not extern C because not used from C++ API 27dc763f345db3e796efc28dc4b4d8edffda5a803eAlex SakhartchoukRsObjectBase rsaFileA3DGetEntryByIndex(RsContext, uint32_t idx, RsFile); 285224a27798f89093b13722b41143551a057ce550Alex SakhartchoukRsFile rsaFileA3DCreateFromMemory(RsContext, const void *data, uint32_t len); 295224a27798f89093b13722b41143551a057ce550Alex SakhartchoukRsFile rsaFileA3DCreateFromAsset(RsContext, void *asset); 305224a27798f89093b13722b41143551a057ce550Alex SakhartchoukRsFile rsaFileA3DCreateFromFile(RsContext, const char *path); 31dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaFileA3DGetNumIndexEntries(RsContext, int32_t *numEntries, RsFile); 3231aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchoukvoid rsaFileA3DGetIndexEntries(RsContext, RsFileIndexEntry *fileEntries, 3331aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk uint32_t numEntries, RsFile); 34dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// Mesh update functions 35dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaMeshGetVertexBufferCount(RsContext, RsMesh, int32_t *vtxCount); 36dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaMeshGetIndexCount(RsContext, RsMesh, int32_t *idxCount); 37dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaMeshGetVertices(RsContext, RsMesh, RsAllocation *vtxData, uint32_t vtxDataCount); 3831aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchoukvoid rsaMeshGetIndices(RsContext, RsMesh, RsAllocation *va, 3931aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk uint32_t *primType, uint32_t idxDataCount); 4031aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex SakhartchoukRsContext rsContextCreateGL(RsDevice dev, uint32_t version, uint32_t sdkVersion, 4131aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk RsSurfaceConfig sc, uint32_t dpi); 42789ca83c794cb7196c9bac97d39eaf1f7947af2aJason Sams 43c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murrayextern "C" { 44c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray void rsaGetName(RsContext, void * obj, const char **name); 45c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray // Allocation update 46c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray const void* rsaAllocationGetType(RsContext con, RsAllocation va); 47c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray // Type update 480a8ec2cbc3a2c267590af89e60c2a64e15c8bf13Tim Murray void rsaTypeGetNativeData(RsContext, RsType, uintptr_t *typeData, uint32_t typeDataSize); 49c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray // Element update 500a8ec2cbc3a2c267590af89e60c2a64e15c8bf13Tim Murray void rsaElementGetNativeData(RsContext, RsElement, uintptr_t *elemData, uint32_t elemDataSize); 510a8ec2cbc3a2c267590af89e60c2a64e15c8bf13Tim Murray void rsaElementGetSubElements(RsContext, RsElement, uintptr_t *ids, const char **names, 52c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray uint32_t *arraySizes, uint32_t dataSize); 53c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray 54c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray RsDevice rsDeviceCreate(); 55c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray void rsDeviceDestroy(RsDevice dev); 56c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray void rsDeviceSetConfig(RsDevice dev, RsDeviceParam p, int32_t value); 57c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray RsContext rsContextCreate(RsDevice dev, uint32_t version, uint32_t sdkVersion, 5884e3dea053bea25c1cec44ffb298f8b5b9b9141aTim Murray RsContextType ct, uint32_t flags); 59c2ce707a3d1a8eae79bcf1c749afc6d6e7969ad9Tim Murray} 60326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#include "rsgApiFuncDecl.h" 61326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 62326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#endif // RENDER_SCRIPT_H 63326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 64326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 65326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 66