1044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams/* 2044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * Copyright (C) 2011 The Android Open Source Project 3044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * 4044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * you may not use this file except in compliance with the License. 6044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * You may obtain a copy of the License at 7044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * 8044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * 10044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * Unless required by applicable law or agreed to in writing, software 11044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * See the License for the specific language governing permissions and 14044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * limitations under the License. 15044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams */ 16044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams 17044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams/** @file rs_types.rsh 189df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 199df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Define the standard Renderscript types 209df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 219df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Integers 229df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 8 bit: char, int8_t 239df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 16 bit: short, int16_t 249df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 32 bit: int, in32_t 259df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 64 bit: long, long long, int64_t 269df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 279df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Unsigned Integers 289df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 8 bit: uchar, uint8_t 299df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 16 bit: ushort, uint16_t 309df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 32 bit: uint, uint32_t 319df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 64 bit: ulong, uint64_t 329df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 339df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Floating point 349df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 32 bit: float 359df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 64 bit: double 369df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 379df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vectors of length 2, 3, and 4 are supported for all the types above. 389df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 399df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 409df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams 419bb32e1fd75e864071f18ef10976e8ba9fc0e252Shih-wei Liao#ifndef __RS_TYPES_RSH__ 429bb32e1fd75e864071f18ef10976e8ba9fc0e252Shih-wei Liao#define __RS_TYPES_RSH__ 43717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 44796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma/* Constants */ 45796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_E 2.718281828459045235360287471352662498f /* e */ 46796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_LOG2E 1.442695040888963407359924681001892137f /* log_2 e */ 47796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_LOG10E 0.434294481903251827651128918916605082f /* log_10 e */ 48796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_LN2 0.693147180559945309417232121458176568f /* log_e 2 */ 49796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_LN10 2.302585092994045684017991454684364208f /* log_e 10 */ 50796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_PI 3.141592653589793238462643383279502884f /* pi */ 51796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_PI_2 1.570796326794896619231321691639751442f /* pi/2 */ 52796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_PI_4 0.785398163397448309615660845819875721f /* pi/4 */ 53796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_1_PI 0.318309886183790671537767526745028724f /* 1/pi */ 54796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_2_PIl 0.636619772367581343075535053490057448f /* 2/pi */ 55796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_2_SQRTPI 1.128379167095512573896158903121545172f /* 2/sqrt(pi) */ 56796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_SQRT2 1.414213562373095048801688724209698079f /* sqrt(2) */ 57796ea154c3252ad932871678d558d6edefe846fdRajeev Sharma#define M_SQRT1_2 0.707106781186547524400844362104849039f /* 1/sqrt(2) */ 585439184e13077059e4caffbdadfcfe37ec99ec10Shih-wei Liao 59ed2ea272afbab08d0b5d882202c8eb19a5233481Shih-wei Liao#include "stdbool.h" 609df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 619df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 8 bit integer type 629df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 63717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char int8_t; 649df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 659df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 16 bit integer type 669df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 67717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short int16_t; 689df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 699df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 32 bit integer type 709df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 71717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int32_t; 729df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 739df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 64 bit integer type 749df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 7522fa371bf64b8aae786acfe5d711af21afb13a93Jason Samstypedef long long int64_t; 769df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 779df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 8 bit unsigned integer type 789df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 79717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef unsigned char uint8_t; 809df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 819df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 16 bit unsigned integer type 829df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 83717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef unsigned short uint16_t; 849df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 859df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 32 bit unsigned integer type 869df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 87717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef unsigned int uint32_t; 889df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 899df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 64 bit unsigned integer type 909df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 9122fa371bf64b8aae786acfe5d711af21afb13a93Jason Samstypedef unsigned long long uint64_t; 929df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 939df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 8 bit unsigned integer type 949df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 95717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint8_t uchar; 969df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 979df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 16 bit unsigned integer type 989df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 99717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint16_t ushort; 1009df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 1019df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 32 bit unsigned integer type 1029df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 103717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint32_t uint; 1049df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 105d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * Typedef for unsigned long (use for 64-bit unsigned integers) 1069df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 10722fa371bf64b8aae786acfe5d711af21afb13a93Jason Samstypedef uint64_t ulong; 1089df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 1099df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Typedef for unsigned int 1109df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 111c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samstypedef uint32_t size_t; 1129df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 1139df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Typedef for int (use for 32-bit integers) 1149df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 115c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samstypedef int32_t ssize_t; 116c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 1179df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 118d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript element. 1199df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1209df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.Element 1219df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 122c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_element; 1239df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 124d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript type. 1259df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1269df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.Type 1279df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 128c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_type; 1299df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 130d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript allocation. 1319df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1329df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.Allocation 1339df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 134c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_allocation; 1359df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 136d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript sampler object. 1379df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1389df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.Sampler 1399df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 140c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_sampler; 1419df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 142d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript script object. 1439df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1449df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.ScriptC 1459df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 146c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_script; 1479df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 148d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript mesh object. 1499df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1509df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.Mesh 1519df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 152c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_mesh; 1539df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 1549e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * \brief Opaque handle to a Renderscript Path object. 1559e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * 1569e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * See: android.renderscript.Path 1579e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams */ 1589e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_path; 1599e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams/** 160d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript ProgramFragment object. 1619df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1629df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.ProgramFragment 1639df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 164c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_fragment; 1659df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 166d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript ProgramVertex object. 1679df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1689df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.ProgramVertex 1699df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 170c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_vertex; 1719df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 172d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript ProgramRaster object. 1739df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 174d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * See: android.renderscript.ProgramRaster 1759df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 176c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_raster; 1779df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 178d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript ProgramStore object. 1799df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1809df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.ProgramStore 1819df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 182c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_store; 1839df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 184d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * \brief Opaque handle to a Renderscript font object. 1859df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 1869df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * See: android.renderscript.Font 1879df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 188c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_font; 189c093685672e54657d87b953d44e514803889486cJason Sams 1909df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 1919df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic float type. 192d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * Provides two float fields packed into a single 64 bit field with 64 bit 1939df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * alignment. 1949df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 195717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef float float2 __attribute__((ext_vector_type(2))); 1969df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 1979df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic float type. Provides three float fields packed 198d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 128 bit field with 128 bit alignment. 1999df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 200717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef float float3 __attribute__((ext_vector_type(3))); 2019df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2029df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic float type. 203d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * Provides four float fields packed into a single 128 bit field with 128 bit 2049df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * alignment. 2059df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 206717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef float float4 __attribute__((ext_vector_type(4))); 207717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 2089df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2099df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic double type. Provides two double fields packed 210d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 128 bit field with 128 bit alignment. 2119df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 21246f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef double double2 __attribute__((ext_vector_type(2))); 2139df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2149df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic double type. Provides three double fields packed 215d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 256 bit field with 256 bit alignment. 2169df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 21746f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef double double3 __attribute__((ext_vector_type(3))); 2189df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2199df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic double type. Provides four double fields packed 220d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 256 bit field with 256 bit alignment. 2219df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 22246f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef double double4 __attribute__((ext_vector_type(4))); 22346f2e7295d648f52812a414edd486a5be9f1ee7eJason Sams 2249df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2259df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic uchar type. Provides two uchar fields packed 226d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 16 bit field with 16 bit alignment. 2279df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 228717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uchar uchar2 __attribute__((ext_vector_type(2))); 2299df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2309df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic uchar type. Provides three uchar fields packed 231d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 32 bit field with 32 bit alignment. 2329df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 233717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uchar uchar3 __attribute__((ext_vector_type(3))); 2349df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2359df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic uchar type. Provides four uchar fields packed 236d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 32 bit field with 32 bit alignment. 2379df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 238717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uchar uchar4 __attribute__((ext_vector_type(4))); 239717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 2409df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2419df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic ushort type. Provides two ushort fields packed 242d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 32 bit field with 32 bit alignment. 2439df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 244717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef ushort ushort2 __attribute__((ext_vector_type(2))); 2459df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2469df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic ushort type. Provides three ushort fields packed 247d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 64 bit field with 64 bit alignment. 2489df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 249717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef ushort ushort3 __attribute__((ext_vector_type(3))); 2509df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2519df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic ushort type. Provides four ushort fields packed 252d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 64 bit field with 64 bit alignment. 2539df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 254717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef ushort ushort4 __attribute__((ext_vector_type(4))); 255717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 2569df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2579df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic uint type. Provides two uint fields packed into a 258d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * single 64 bit field with 64 bit alignment. 2599df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 260717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint uint2 __attribute__((ext_vector_type(2))); 2619df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2629df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic uint type. Provides three uint fields packed into 263d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 128 bit field with 128 bit alignment. 2649df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 265717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint uint3 __attribute__((ext_vector_type(3))); 2669df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2679df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic uint type. Provides four uint fields packed into 268d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 128 bit field with 128 bit alignment. 2699df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 270717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint uint4 __attribute__((ext_vector_type(4))); 271717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 2729df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2739df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic ulong type. Provides two ulong fields packed into 274d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 128 bit field with 128 bit alignment. 2759df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 27646f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef ulong ulong2 __attribute__((ext_vector_type(2))); 2779df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2789df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic ulong type. Provides three ulong fields packed 279d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 256 bit field with 256 bit alignment. 2809df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 28146f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef ulong ulong3 __attribute__((ext_vector_type(3))); 2829df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2839df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic ulong type. Provides four ulong fields packed 284d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 256 bit field with 256 bit alignment. 2859df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 28646f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef ulong ulong4 __attribute__((ext_vector_type(4))); 28746f2e7295d648f52812a414edd486a5be9f1ee7eJason Sams 2889df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2899df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic char type. Provides two char fields packed into a 290d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * single 16 bit field with 16 bit alignment. 2919df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 292717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char char2 __attribute__((ext_vector_type(2))); 2939df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2949df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic char type. Provides three char fields packed into 295d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 32 bit field with 32 bit alignment. 2969df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 297717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char char3 __attribute__((ext_vector_type(3))); 2989df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 2999df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic char type. Provides four char fields packed into 300d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 32 bit field with 32 bit alignment. 3019df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 302717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char char4 __attribute__((ext_vector_type(4))); 303717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 3049df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3059df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic short type. Provides two short fields packed into 306d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 32 bit field with 32 bit alignment. 3079df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 308717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short short2 __attribute__((ext_vector_type(2))); 3099df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3109df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic short type. Provides three short fields packed 311d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 64 bit field with 64 bit alignment. 3129df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 313717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short short3 __attribute__((ext_vector_type(3))); 3149df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3159df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic short type. Provides four short fields packed 316d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * into a single 64 bit field with 64 bit alignment. 3179df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 318717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short short4 __attribute__((ext_vector_type(4))); 319717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 3209df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3219df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic int type. Provides two int fields packed into a 322d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * single 64 bit field with 64 bit alignment. 3239df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 324717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int2 __attribute__((ext_vector_type(2))); 3259df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3269df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic int type. Provides three int fields packed into a 327d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * single 128 bit field with 128 bit alignment. 3289df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 329717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int3 __attribute__((ext_vector_type(3))); 3309df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3319df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic int type. Provides two four fields packed into a 332d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * single 128 bit field with 128 bit alignment. 3339df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 334717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int4 __attribute__((ext_vector_type(4))); 335717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 3369df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3379df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic long type. Provides two long fields packed into a 338d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * single 128 bit field with 128 bit alignment. 3399df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 34046f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef long long2 __attribute__((ext_vector_type(2))); 3419df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3429df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic long type. Provides three long fields packed into 343d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 256 bit field with 256 bit alignment. 3449df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 34546f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef long long3 __attribute__((ext_vector_type(3))); 3469df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3479df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Vector version of the basic long type. Provides four long fields packed into 348d5dccb8c49d8da069f2630c4ac9c0e2d14958a88Stephen Hines * a single 256 bit field with 256 bit alignment. 3499df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 35046f2e7295d648f52812a414edd486a5be9f1ee7eJason Samstypedef long long4 __attribute__((ext_vector_type(4))); 351717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams 3529df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3539df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * \brief 4x4 float matrix 3549df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 3559df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Native holder for RS matrix. Elements are stored in the array at the 3569df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * location [row*4 + col] 3579df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 35805f1cb4ca5ce203a4facc7ec0bd002af2ae324b7Alex Sakhartchouktypedef struct { 35922fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams float m[16]; 36022fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams} rs_matrix4x4; 3619df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3629df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * \brief 3x3 float matrix 3639df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 3649df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Native holder for RS matrix. Elements are stored in the array at the 3659df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * location [row*3 + col] 3669df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 36705f1cb4ca5ce203a4facc7ec0bd002af2ae324b7Alex Sakhartchouktypedef struct { 3687fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams float m[9]; 3697fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams} rs_matrix3x3; 3709df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3719df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * \brief 2x2 float matrix 3729df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 3739df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * Native holder for RS matrix. Elements are stored in the array at the 3749df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * location [row*2 + col] 3759df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 37605f1cb4ca5ce203a4facc7ec0bd002af2ae324b7Alex Sakhartchouktypedef struct { 3777fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams float m[4]; 3787fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams} rs_matrix2x2; 3797fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams 3809df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3819df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * quaternion type for use with the quaternion functions 3829df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 3830bd010a5bdf4df3021c92c70e92008d6640c5da6Alex Sakhartchouktypedef float4 rs_quaternion; 3847fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams 38597589cbd2b844543f6c8a6bc336f4e11a67828fdJason Sams#define RS_PACKED __attribute__((packed, aligned(4))) 3866a057c34ca84c0b7211538caa85f366a0a0e6434Stephen Hines#define NULL ((void *)0) 387c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 3884325387cee36fe373b1a792fb2e65ef00535bbddAlex Sakhartchouk#if (defined(RS_VERSION) && (RS_VERSION >= 14)) 3899df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams 3909df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 3919df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * \brief Enum for selecting cube map faces 3929df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 39374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouktypedef enum { 39474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0, 39574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1, 39674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2, 39774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3, 39874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4, 39974a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5 40074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} rs_allocation_cubemap_face; 40174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 4029df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams/** 4039df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * \brief Bitfield to specify the usage types for an allocation. 4049df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 4059df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * These values are ORed together to specify which usages or memory spaces are 4069df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * relevant to an allocation or an operation on an allocation. 4079df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 40874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouktypedef enum { 40974a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_USAGE_SCRIPT = 0x0001, 41074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002, 41174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004, 41274a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008, 41374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010 41474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} rs_allocation_usage_type; 41574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 416b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk#endif //defined(RS_VERSION) && (RS_VERSION >= 14) 417b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk 418340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk// New API's 4193c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 4203c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk 4218d0f59ef07388a32ed694efe8aa63c24a67cfd7bAlex Sakhartchouk/** 4228d0f59ef07388a32ed694efe8aa63c24a67cfd7bAlex Sakhartchouk * Describes the way mesh vertex data is interpreted when rendering 4238d0f59ef07388a32ed694efe8aa63c24a67cfd7bAlex Sakhartchouk * 4248d0f59ef07388a32ed694efe8aa63c24a67cfd7bAlex Sakhartchouk **/ 425253325d2a19162c1dd18de59c357e36adf4a760bAlex Sakhartchouktypedef enum { 426340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 427340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Vertex data will be rendered as a series of points 428340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 42909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_POINT = 0, 430340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 431340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Vertex pairs will be rendered as lines 432340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 43309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_LINE = 1, 434340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 435340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Vertex data will be rendered as a connected line strip 436340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 43709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_LINE_STRIP = 2, 438340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 439340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Vertices will be rendered as individual triangles 440340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 44109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_TRIANGLE = 3, 442340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 443340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Vertices will be rendered as a connected triangle strip 444340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * defined by the first three vertices with each additional 445340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * triangle defined by a new vertex 446340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 44709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_TRIANGLE_STRIP = 4, 448340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 449340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Vertices will be rendered as a sequence of triangles that all 450340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * share first vertex as the origin 451340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 45209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_TRIANGLE_FAN = 5, 45309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 454340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 455340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Invalid primitive 456340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 45709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_PRIMITIVE_INVALID = 100, 458253325d2a19162c1dd18de59c357e36adf4a760bAlex Sakhartchouk} rs_primitive; 459253325d2a19162c1dd18de59c357e36adf4a760bAlex Sakhartchouk 460b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk/** 461b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * \brief Enumeration for possible element data types 462b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * 463b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * DataType represents the basic type information for a basic element. The 464b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * naming convention follows. For numeric types it is FLOAT, 465b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * SIGNED, or UNSIGNED followed by the _BITS where BITS is the 466b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * size of the data. BOOLEAN is a true / false (1,0) 467b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * represented in an 8 bit container. The UNSIGNED variants 468b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * with multiple bit definitions are for packed graphical data 469b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * formats and represent vectors with per vector member sizes 470b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * which are treated as a single unit for packing and alignment 471b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * purposes. 472b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * 473b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * MATRIX the three matrix types contain FLOAT_32 elements and are treated 474b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * as 32 bits for alignment purposes. 475b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * 476b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * RS_* objects. 32 bit opaque handles. 477b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk */ 478b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouktypedef enum { 47909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_NONE = 0, 48009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_FLOAT_32 = 2, 48109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_FLOAT_64 = 3, 48209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_SIGNED_8 = 4, 48309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_SIGNED_16 = 5, 48409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_SIGNED_32 = 6, 48509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_SIGNED_64 = 7, 48609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_8 = 8, 48709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_16 = 9, 48809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_32 = 10, 48909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_64 = 11, 49009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 49109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_BOOLEAN = 12, 49209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 49309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_5_6_5 = 13, 49409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_5_5_5_1 = 14, 49509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_UNSIGNED_4_4_4_4 = 15, 49609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 49709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_MATRIX_4X4 = 16, 49809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_MATRIX_3X3 = 17, 49909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_MATRIX_2X2 = 18, 50009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 50109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_ELEMENT = 1000, 50209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_TYPE = 1001, 50309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_ALLOCATION = 1002, 50409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_SAMPLER = 1003, 50509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_SCRIPT = 1004, 50609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_MESH = 1005, 50709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_PROGRAM_FRAGMENT = 1006, 50809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_PROGRAM_VERTEX = 1007, 50909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_PROGRAM_RASTER = 1008, 51009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_PROGRAM_STORE = 1009, 511ae8b795a673b75bf0aec72620f4530db1415f907Stephen Hines RS_TYPE_FONT = 1010, 51209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 51309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_TYPE_INVALID = 10000, 514b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk} rs_data_type; 515b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk 516b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk/** 517b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * \brief Enumeration for possible element data kind 518b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * 519b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * The special interpretation of the data if required. This is primarly 520b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * useful for graphical data. USER indicates no special interpretation is 521b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * expected. PIXEL is used in conjunction with the standard data types for 522b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk * representing texture formats. 523b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk */ 524b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouktypedef enum { 52509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_USER = 0, 526b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk 52709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_PIXEL_L = 7, 52809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_PIXEL_A = 8, 52909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_PIXEL_LA = 9, 53009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_PIXEL_RGB = 10, 53109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_PIXEL_RGBA = 11, 53209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_PIXEL_DEPTH = 12, 53325a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk 53409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_KIND_INVALID = 100, 535b0fa3a6916600a40f3d263e7bd201818b8fdb360Alex Sakhartchouk} rs_data_kind; 5364325387cee36fe373b1a792fb2e65ef00535bbddAlex Sakhartchouk 53709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouktypedef enum { 538340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 539340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Always drawn 540340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 54109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_ALWAYS = 0, 542340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 543340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Drawn if the incoming depth value is less than that in the 544340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * depth buffer 545340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 54609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_LESS = 1, 547340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 548340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Drawn if the incoming depth value is less or equal to that in 549340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * the depth buffer 550340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 55109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_LEQUAL = 2, 552340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 553340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Drawn if the incoming depth value is greater than that in the 554340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * depth buffer 555340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 55609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_GREATER = 3, 557340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 558340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Drawn if the incoming depth value is greater or equal to that 559340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * in the depth buffer 560340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 56109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_GEQUAL = 4, 562340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 563340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Drawn if the incoming depth value is equal to that in the 564340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * depth buffer 565340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 56609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_EQUAL = 5, 567340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 568340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Drawn if the incoming depth value is not equal to that in the 569340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * depth buffer 570340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 57109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_NOTEQUAL = 6, 572340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk /** 573340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * Invalid depth function 574340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk */ 57509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_DEPTH_FUNC_INVALID = 100, 57609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk} rs_depth_func; 57709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 57809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouktypedef enum { 57909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_ZERO = 0, 58009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_ONE = 1, 58109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_DST_COLOR = 2, 58209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_ONE_MINUS_DST_COLOR = 3, 58309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_SRC_ALPHA = 4, 58409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA = 5, 58509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_DST_ALPHA = 6, 58609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_ONE_MINUS_DST_ALPHA = 7, 58709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_SRC_ALPHA_SATURATE = 8, 58809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 58909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_SRC_INVALID = 100, 59009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk} rs_blend_src_func; 59109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 59209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouktypedef enum { 59309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_ZERO = 0, 59409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_ONE = 1, 59509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_SRC_COLOR = 2, 59609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_ONE_MINUS_SRC_COLOR = 3, 59709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_SRC_ALPHA = 4, 59809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_ONE_MINUS_SRC_ALPHA = 5, 59909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_DST_ALPHA = 6, 60009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_ONE_MINUS_DST_ALPHA = 7, 60109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 60209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_BLEND_DST_INVALID = 100, 60309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk} rs_blend_dst_func; 60409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 60509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouktypedef enum { 60609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_CULL_BACK = 0, 60709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_CULL_FRONT = 1, 60809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_CULL_NONE = 2, 60909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 61009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_CULL_INVALID = 100, 61109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk} rs_cull_mode; 61209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 61309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouktypedef enum { 61409db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_NEAREST = 0, 61509db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_LINEAR = 1, 61609db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_LINEAR_MIP_LINEAR = 2, 61709db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_WRAP = 3, 61809db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_CLAMP = 4, 61909db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_LINEAR_MIP_NEAREST = 5, 62009db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 62109db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk RS_SAMPLER_INVALID = 100, 62209db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk} rs_sampler_value; 62309db907b55417f071460bf0b5a82c13e8e9a5088Alex Sakhartchouk 6243c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk#endif // (defined(RS_VERSION) && (RS_VERSION >= 16)) 6253c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk 6263c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk#endif // __RS_TYPES_RSH__ 627