blob: 0ecd78603ad64d458952dd45002f1375778113ea [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/** @file rs_mesh.rsh
* \brief Mesh routines
*
*
*/
#ifndef __RS_MESH_RSH__
#define __RS_MESH_RSH__
// New API's
#if (defined(RS_VERSION) && (RS_VERSION >= 16))
/**
* Returns the number of allocations in the mesh that contain
* vertex data
*
* @param m mesh to get data from
* @return number of allocations in the mesh that contain vertex
* data
*/
extern uint32_t __attribute__((overloadable))
rsgMeshGetVertexAllocationCount(rs_mesh m);
/**
* Meshes could have multiple index sets, this function returns
* the number.
*
* @param m mesh to get data from
* @return number of primitive groups in the mesh. This would
* include simple primitives as well as allocations
* containing index data
*/
extern uint32_t __attribute__((overloadable))
rsgMeshGetPrimitiveCount(rs_mesh m);
/**
* Returns an allocation that is part of the mesh and contains
* vertex data, e.g. positions, normals, texcoords
*
* @param m mesh to get data from
* @param index index of the vertex allocation
* @return allocation containing vertex data
*/
extern rs_allocation __attribute__((overloadable))
rsgMeshGetVertexAllocation(rs_mesh m, uint32_t index);
/**
* Returns an allocation containing index data or a null
* allocation if only the primitive is specified
*
* @param m mesh to get data from
* @param index index of the index allocation
* @return allocation containing index data
*/
extern rs_allocation __attribute__((overloadable))
rsgMeshGetIndexAllocation(rs_mesh m, uint32_t index);
/**
* Returns the primitive describing how a part of the mesh is
* rendered
*
* @param m mesh to get data from
* @param index index of the primitive
* @return primitive describing how the mesh is rendered
*/
extern rs_primitive __attribute__((overloadable))
rsgMeshGetPrimitive(rs_mesh m, uint32_t index);
#endif // (defined(RS_VERSION) && (RS_VERSION >= 16))
#endif // __RS_MESH_RSH__