2021-05-20 10:49:33 +00:00
|
|
|
// Copyright 2009-2021 Intel Corporation
|
2020-12-19 13:50:20 +00:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "rtcore_device.h"
|
|
|
|
|
|
|
|
RTC_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
/* Types of buffers */
|
|
|
|
enum RTCBufferType
|
|
|
|
{
|
|
|
|
RTC_BUFFER_TYPE_INDEX = 0,
|
|
|
|
RTC_BUFFER_TYPE_VERTEX = 1,
|
|
|
|
RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE = 2,
|
|
|
|
RTC_BUFFER_TYPE_NORMAL = 3,
|
|
|
|
RTC_BUFFER_TYPE_TANGENT = 4,
|
|
|
|
RTC_BUFFER_TYPE_NORMAL_DERIVATIVE = 5,
|
|
|
|
|
|
|
|
RTC_BUFFER_TYPE_GRID = 8,
|
|
|
|
|
|
|
|
RTC_BUFFER_TYPE_FACE = 16,
|
|
|
|
RTC_BUFFER_TYPE_LEVEL = 17,
|
|
|
|
RTC_BUFFER_TYPE_EDGE_CREASE_INDEX = 18,
|
|
|
|
RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT = 19,
|
|
|
|
RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX = 20,
|
|
|
|
RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT = 21,
|
|
|
|
RTC_BUFFER_TYPE_HOLE = 22,
|
|
|
|
|
|
|
|
RTC_BUFFER_TYPE_FLAGS = 32
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Opaque buffer type */
|
|
|
|
typedef struct RTCBufferTy* RTCBuffer;
|
|
|
|
|
|
|
|
/* Creates a new buffer. */
|
|
|
|
RTC_API RTCBuffer rtcNewBuffer(RTCDevice device, size_t byteSize);
|
|
|
|
|
|
|
|
/* Creates a new shared buffer. */
|
|
|
|
RTC_API RTCBuffer rtcNewSharedBuffer(RTCDevice device, void* ptr, size_t byteSize);
|
|
|
|
|
|
|
|
/* Returns a pointer to the buffer data. */
|
|
|
|
RTC_API void* rtcGetBufferData(RTCBuffer buffer);
|
|
|
|
|
|
|
|
/* Retains the buffer (increments the reference count). */
|
|
|
|
RTC_API void rtcRetainBuffer(RTCBuffer buffer);
|
|
|
|
|
|
|
|
/* Releases the buffer (decrements the reference count). */
|
|
|
|
RTC_API void rtcReleaseBuffer(RTCBuffer buffer);
|
|
|
|
|
|
|
|
RTC_NAMESPACE_END
|