// Copyright 2009-2021 Intel Corporation // SPDX-License-Identifier: Apache-2.0 #ifndef __RTC_BUFFER_ISPH__ #define __RTC_BUFFER_ISPH__ #include "rtcore_device.isph" /* 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 uniform struct RTCBufferTy* uniform RTCBuffer; /* Creates a new buffer. */ RTC_API RTCBuffer rtcNewBuffer(RTCDevice device, uniform uintptr_t byteSize); /* Creates a new shared buffer. */ RTC_API RTCBuffer rtcNewSharedBuffer(RTCDevice device, void* uniform ptr, uniform uintptr_t byteSize); /* Returns a pointer to the buffer data. */ RTC_API void* uniform rtcGetBufferData(RTCBuffer buffer); /* Retains the buffer (increments the reference count). */ RTC_API void rtcRetainBuffer(RTCBuffer buffer); /* Releases the buffer handle (decrements the reference count). */ RTC_API void rtcReleaseBuffer(RTCBuffer buffer); #endif