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