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 233715b00e7b10a2624c1d5c696186c7a2f4a75a91Jason Sams#include "rsDefines.h" 246b8552a4f6a44848255d77222e66aa92dd21b1b5Jason Sams 25bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams// 26dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// A3D loading and object update code. 27dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// Should only be called at object creation, not thread safe 28dc763f345db3e796efc28dc4b4d8edffda5a803eAlex SakhartchoukRsObjectBase rsaFileA3DGetEntryByIndex(RsContext, uint32_t idx, RsFile); 295224a27798f89093b13722b41143551a057ce550Alex SakhartchoukRsFile rsaFileA3DCreateFromMemory(RsContext, const void *data, uint32_t len); 305224a27798f89093b13722b41143551a057ce550Alex SakhartchoukRsFile rsaFileA3DCreateFromAsset(RsContext, void *asset); 315224a27798f89093b13722b41143551a057ce550Alex SakhartchoukRsFile rsaFileA3DCreateFromFile(RsContext, const char *path); 32dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaFileA3DGetNumIndexEntries(RsContext, int32_t *numEntries, RsFile); 3331aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchoukvoid rsaFileA3DGetIndexEntries(RsContext, RsFileIndexEntry *fileEntries, 3431aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk uint32_t numEntries, RsFile); 35dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaGetName(RsContext, void * obj, const char **name); 36dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// Mesh update functions 37dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaMeshGetVertexBufferCount(RsContext, RsMesh, int32_t *vtxCount); 38dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaMeshGetIndexCount(RsContext, RsMesh, int32_t *idxCount); 39dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaMeshGetVertices(RsContext, RsMesh, RsAllocation *vtxData, uint32_t vtxDataCount); 4031aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchoukvoid rsaMeshGetIndices(RsContext, RsMesh, RsAllocation *va, 4131aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk uint32_t *primType, uint32_t idxDataCount); 42dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// Allocation update 43dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukconst void* rsaAllocationGetType(RsContext con, RsAllocation va); 44dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// Type update 45dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaTypeGetNativeData(RsContext, RsType, uint32_t *typeData, uint32_t typeDataSize); 46dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchouk// Element update 47dc763f345db3e796efc28dc4b4d8edffda5a803eAlex Sakhartchoukvoid rsaElementGetNativeData(RsContext, RsElement, uint32_t *elemData, uint32_t elemDataSize); 4831aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchoukvoid rsaElementGetSubElements(RsContext, RsElement, uint32_t *ids, const char **names, 4931aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk uint32_t *arraySizes, uint32_t dataSize); 506b8552a4f6a44848255d77222e66aa92dd21b1b5Jason Sams 51789ca83c794cb7196c9bac97d39eaf1f7947af2aJason SamsRsDevice rsDeviceCreate(); 52789ca83c794cb7196c9bac97d39eaf1f7947af2aJason Samsvoid rsDeviceDestroy(RsDevice dev); 53789ca83c794cb7196c9bac97d39eaf1f7947af2aJason Samsvoid rsDeviceSetConfig(RsDevice dev, RsDeviceParam p, int32_t value); 54cbb0b8aceedb9146ba901cba1fbd6d1e9ca88f51Stephen HinesRsContext rsContextCreate(RsDevice dev, uint32_t version, uint32_t sdkVersion); 5531aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex SakhartchoukRsContext rsContextCreateGL(RsDevice dev, uint32_t version, uint32_t sdkVersion, 5631aca7dfb577503e789a0ec4e47e8c51d447bfcfAlex Sakhartchouk RsSurfaceConfig sc, uint32_t dpi); 57789ca83c794cb7196c9bac97d39eaf1f7947af2aJason Sams 58326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#include "rsgApiFuncDecl.h" 59326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 60326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#endif // RENDER_SCRIPT_H 61326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 62326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 63326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 64