1*e1eccf28SAndroid Build Coastguard Worker #ifndef _RS_STRUCTS_H_ 2*e1eccf28SAndroid Build Coastguard Worker #define _RS_STRUCTS_H_ 3*e1eccf28SAndroid Build Coastguard Worker 4*e1eccf28SAndroid Build Coastguard Worker #include "rs_core.rsh" 5*e1eccf28SAndroid Build Coastguard Worker #include "rs_graphics.rsh" 6*e1eccf28SAndroid Build Coastguard Worker 7*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 8*e1eccf28SAndroid Build Coastguard Worker * CAUTION 9*e1eccf28SAndroid Build Coastguard Worker * 10*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 11*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class Allocation owned by librs. Unfortunately, 12*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 13*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 14*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 15*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsAllocation.h is modified. 16*e1eccf28SAndroid Build Coastguard Worker * 17*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 18*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsAllocationGetDimX(). Without this 19*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 20*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 21*e1eccf28SAndroid Build Coastguard Worker * allocations. 22*e1eccf28SAndroid Build Coastguard Worker * 23*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 24*e1eccf28SAndroid Build Coastguard Worker typedef enum { 25*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_MIPMAP_NONE = 0, 26*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_MIPMAP_FULL = 1, 27*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE = 2 28*e1eccf28SAndroid Build Coastguard Worker } rs_allocation_mipmap_control; 29*e1eccf28SAndroid Build Coastguard Worker 30*e1eccf28SAndroid Build Coastguard Worker typedef struct Allocation { 31*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 32*e1eccf28SAndroid Build Coastguard Worker char __pad[32]; 33*e1eccf28SAndroid Build Coastguard Worker #else 34*e1eccf28SAndroid Build Coastguard Worker char __pad[56]; 35*e1eccf28SAndroid Build Coastguard Worker #endif 36*e1eccf28SAndroid Build Coastguard Worker struct { 37*e1eccf28SAndroid Build Coastguard Worker void * drv; 38*e1eccf28SAndroid Build Coastguard Worker struct { 39*e1eccf28SAndroid Build Coastguard Worker const void *type; 40*e1eccf28SAndroid Build Coastguard Worker uint32_t usageFlags; 41*e1eccf28SAndroid Build Coastguard Worker rs_allocation_mipmap_control mipmapControl; 42*e1eccf28SAndroid Build Coastguard Worker uint32_t yuv; 43*e1eccf28SAndroid Build Coastguard Worker uint32_t elementSizeBytes; 44*e1eccf28SAndroid Build Coastguard Worker bool hasMipmaps; 45*e1eccf28SAndroid Build Coastguard Worker bool hasFaces; 46*e1eccf28SAndroid Build Coastguard Worker bool hasReferences; 47*e1eccf28SAndroid Build Coastguard Worker void * usrPtr; 48*e1eccf28SAndroid Build Coastguard Worker int32_t surfaceTextureID; 49*e1eccf28SAndroid Build Coastguard Worker void * nativeBuffer; 50*e1eccf28SAndroid Build Coastguard Worker int64_t timestamp; 51*e1eccf28SAndroid Build Coastguard Worker 52*e1eccf28SAndroid Build Coastguard Worker // Allocation adapter state 53*e1eccf28SAndroid Build Coastguard Worker const void *baseAlloc; 54*e1eccf28SAndroid Build Coastguard Worker uint32_t originX; 55*e1eccf28SAndroid Build Coastguard Worker uint32_t originY; 56*e1eccf28SAndroid Build Coastguard Worker uint32_t originZ; 57*e1eccf28SAndroid Build Coastguard Worker uint32_t originLOD; 58*e1eccf28SAndroid Build Coastguard Worker uint32_t originFace; 59*e1eccf28SAndroid Build Coastguard Worker uint32_t originArray[4/*Type::mMaxArrays*/]; 60*e1eccf28SAndroid Build Coastguard Worker } state; 61*e1eccf28SAndroid Build Coastguard Worker 62*e1eccf28SAndroid Build Coastguard Worker struct DrvState { 63*e1eccf28SAndroid Build Coastguard Worker struct LodState { 64*e1eccf28SAndroid Build Coastguard Worker void * mallocPtr; 65*e1eccf28SAndroid Build Coastguard Worker size_t stride; 66*e1eccf28SAndroid Build Coastguard Worker uint32_t dimX; 67*e1eccf28SAndroid Build Coastguard Worker uint32_t dimY; 68*e1eccf28SAndroid Build Coastguard Worker uint32_t dimZ; 69*e1eccf28SAndroid Build Coastguard Worker } lod[16/*android::renderscript::Allocation::MAX_LOD*/]; 70*e1eccf28SAndroid Build Coastguard Worker size_t faceOffset; 71*e1eccf28SAndroid Build Coastguard Worker uint32_t lodCount; 72*e1eccf28SAndroid Build Coastguard Worker uint32_t faceCount; 73*e1eccf28SAndroid Build Coastguard Worker 74*e1eccf28SAndroid Build Coastguard Worker struct YuvState { 75*e1eccf28SAndroid Build Coastguard Worker uint32_t shift; 76*e1eccf28SAndroid Build Coastguard Worker uint32_t step; 77*e1eccf28SAndroid Build Coastguard Worker } yuv; 78*e1eccf28SAndroid Build Coastguard Worker 79*e1eccf28SAndroid Build Coastguard Worker int grallocFlags; 80*e1eccf28SAndroid Build Coastguard Worker uint32_t dimArray[4/*Type::mMaxArrays*/]; 81*e1eccf28SAndroid Build Coastguard Worker } drvState; 82*e1eccf28SAndroid Build Coastguard Worker } mHal; 83*e1eccf28SAndroid Build Coastguard Worker } Allocation_t; 84*e1eccf28SAndroid Build Coastguard Worker 85*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 86*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 87*e1eccf28SAndroid Build Coastguard Worker * CAUTION 88*e1eccf28SAndroid Build Coastguard Worker * 89*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 90*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class ProgramStore owned by librs. Unfortunately, 91*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 92*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 93*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 94*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsProgramStore.h is modified. 95*e1eccf28SAndroid Build Coastguard Worker * 96*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 97*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsgProgramStoreGetDepthFunc(). Without this 98*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 99*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 100*e1eccf28SAndroid Build Coastguard Worker * program store. 101*e1eccf28SAndroid Build Coastguard Worker * 102*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 103*e1eccf28SAndroid Build Coastguard Worker typedef struct ProgramStore { 104*e1eccf28SAndroid Build Coastguard Worker char __pad[40]; 105*e1eccf28SAndroid Build Coastguard Worker struct { 106*e1eccf28SAndroid Build Coastguard Worker struct { 107*e1eccf28SAndroid Build Coastguard Worker bool ditherEnable; 108*e1eccf28SAndroid Build Coastguard Worker bool colorRWriteEnable; 109*e1eccf28SAndroid Build Coastguard Worker bool colorGWriteEnable; 110*e1eccf28SAndroid Build Coastguard Worker bool colorBWriteEnable; 111*e1eccf28SAndroid Build Coastguard Worker bool colorAWriteEnable; 112*e1eccf28SAndroid Build Coastguard Worker rs_blend_src_func blendSrc; 113*e1eccf28SAndroid Build Coastguard Worker rs_blend_dst_func blendDst; 114*e1eccf28SAndroid Build Coastguard Worker bool depthWriteEnable; 115*e1eccf28SAndroid Build Coastguard Worker rs_depth_func depthFunc; 116*e1eccf28SAndroid Build Coastguard Worker } state; 117*e1eccf28SAndroid Build Coastguard Worker } mHal; 118*e1eccf28SAndroid Build Coastguard Worker } ProgramStore_t; 119*e1eccf28SAndroid Build Coastguard Worker 120*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 121*e1eccf28SAndroid Build Coastguard Worker * CAUTION 122*e1eccf28SAndroid Build Coastguard Worker * 123*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 124*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class ProgramRaster owned by librs. Unfortunately, 125*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 126*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 127*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 128*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsProgramRaster.h is modified. 129*e1eccf28SAndroid Build Coastguard Worker * 130*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 131*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsgProgramRasterGetCullMode(). Without this 132*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 133*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 134*e1eccf28SAndroid Build Coastguard Worker * program raster. 135*e1eccf28SAndroid Build Coastguard Worker * 136*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 137*e1eccf28SAndroid Build Coastguard Worker typedef struct ProgramRaster { 138*e1eccf28SAndroid Build Coastguard Worker char __pad[36]; 139*e1eccf28SAndroid Build Coastguard Worker struct { 140*e1eccf28SAndroid Build Coastguard Worker void * drv; 141*e1eccf28SAndroid Build Coastguard Worker struct { 142*e1eccf28SAndroid Build Coastguard Worker bool pointSprite; 143*e1eccf28SAndroid Build Coastguard Worker rs_cull_mode cull; 144*e1eccf28SAndroid Build Coastguard Worker } state; 145*e1eccf28SAndroid Build Coastguard Worker } mHal; 146*e1eccf28SAndroid Build Coastguard Worker } ProgramRaster_t; 147*e1eccf28SAndroid Build Coastguard Worker #endif //__LP64__ 148*e1eccf28SAndroid Build Coastguard Worker 149*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 150*e1eccf28SAndroid Build Coastguard Worker * CAUTION 151*e1eccf28SAndroid Build Coastguard Worker * 152*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 153*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class Sampler owned by librs. Unfortunately, 154*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 155*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 156*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 157*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsSampler.h is modified. 158*e1eccf28SAndroid Build Coastguard Worker * 159*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 160*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsgProgramRasterGetMagFilter(). Without this 161*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 162*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 163*e1eccf28SAndroid Build Coastguard Worker * samplers. 164*e1eccf28SAndroid Build Coastguard Worker * 165*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 166*e1eccf28SAndroid Build Coastguard Worker typedef struct Sampler { 167*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 168*e1eccf28SAndroid Build Coastguard Worker char __pad[32]; 169*e1eccf28SAndroid Build Coastguard Worker #else 170*e1eccf28SAndroid Build Coastguard Worker char __pad[56]; 171*e1eccf28SAndroid Build Coastguard Worker #endif 172*e1eccf28SAndroid Build Coastguard Worker struct { 173*e1eccf28SAndroid Build Coastguard Worker void *drv; 174*e1eccf28SAndroid Build Coastguard Worker struct { 175*e1eccf28SAndroid Build Coastguard Worker rs_sampler_value magFilter; 176*e1eccf28SAndroid Build Coastguard Worker rs_sampler_value minFilter; 177*e1eccf28SAndroid Build Coastguard Worker rs_sampler_value wrapS; 178*e1eccf28SAndroid Build Coastguard Worker rs_sampler_value wrapT; 179*e1eccf28SAndroid Build Coastguard Worker rs_sampler_value wrapR; 180*e1eccf28SAndroid Build Coastguard Worker float aniso; 181*e1eccf28SAndroid Build Coastguard Worker } state; 182*e1eccf28SAndroid Build Coastguard Worker } mHal; 183*e1eccf28SAndroid Build Coastguard Worker } Sampler_t; 184*e1eccf28SAndroid Build Coastguard Worker 185*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 186*e1eccf28SAndroid Build Coastguard Worker * CAUTION 187*e1eccf28SAndroid Build Coastguard Worker * 188*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 189*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class Element owned by librs. Unfortunately, 190*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 191*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 192*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 193*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsElement.h is modified. 194*e1eccf28SAndroid Build Coastguard Worker * 195*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 196*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsElementGetSubElementCount(). Without this 197*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 198*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 199*e1eccf28SAndroid Build Coastguard Worker * elements. 200*e1eccf28SAndroid Build Coastguard Worker * 201*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 202*e1eccf28SAndroid Build Coastguard Worker typedef struct Element { 203*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 204*e1eccf28SAndroid Build Coastguard Worker char __pad[32]; 205*e1eccf28SAndroid Build Coastguard Worker #else 206*e1eccf28SAndroid Build Coastguard Worker char __pad[56]; 207*e1eccf28SAndroid Build Coastguard Worker #endif 208*e1eccf28SAndroid Build Coastguard Worker struct { 209*e1eccf28SAndroid Build Coastguard Worker void *drv; 210*e1eccf28SAndroid Build Coastguard Worker struct { 211*e1eccf28SAndroid Build Coastguard Worker rs_data_type dataType; 212*e1eccf28SAndroid Build Coastguard Worker rs_data_kind dataKind; 213*e1eccf28SAndroid Build Coastguard Worker uint32_t vectorSize; 214*e1eccf28SAndroid Build Coastguard Worker uint32_t elementSizeBytes; 215*e1eccf28SAndroid Build Coastguard Worker 216*e1eccf28SAndroid Build Coastguard Worker // Subelements 217*e1eccf28SAndroid Build Coastguard Worker const void **fields; 218*e1eccf28SAndroid Build Coastguard Worker uint32_t *fieldArraySizes; 219*e1eccf28SAndroid Build Coastguard Worker const char **fieldNames; 220*e1eccf28SAndroid Build Coastguard Worker uint32_t *fieldNameLengths; 221*e1eccf28SAndroid Build Coastguard Worker uint32_t *fieldOffsetBytes; 222*e1eccf28SAndroid Build Coastguard Worker uint32_t fieldsCount; 223*e1eccf28SAndroid Build Coastguard Worker } state; 224*e1eccf28SAndroid Build Coastguard Worker } mHal; 225*e1eccf28SAndroid Build Coastguard Worker } Element_t; 226*e1eccf28SAndroid Build Coastguard Worker 227*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 228*e1eccf28SAndroid Build Coastguard Worker * CAUTION 229*e1eccf28SAndroid Build Coastguard Worker * 230*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 231*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class Type owned by librs. Unfortunately, 232*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 233*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 234*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 235*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsType.h is modified. 236*e1eccf28SAndroid Build Coastguard Worker * 237*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 238*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsAllocationGetElement(). Without this 239*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 240*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 241*e1eccf28SAndroid Build Coastguard Worker * types. 242*e1eccf28SAndroid Build Coastguard Worker * 243*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 244*e1eccf28SAndroid Build Coastguard Worker typedef struct Type { 245*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 246*e1eccf28SAndroid Build Coastguard Worker char __pad[32]; 247*e1eccf28SAndroid Build Coastguard Worker #else 248*e1eccf28SAndroid Build Coastguard Worker char __pad[56]; 249*e1eccf28SAndroid Build Coastguard Worker #endif 250*e1eccf28SAndroid Build Coastguard Worker struct { 251*e1eccf28SAndroid Build Coastguard Worker void *drv; 252*e1eccf28SAndroid Build Coastguard Worker struct { 253*e1eccf28SAndroid Build Coastguard Worker const void * element; 254*e1eccf28SAndroid Build Coastguard Worker uint32_t dimX; 255*e1eccf28SAndroid Build Coastguard Worker uint32_t dimY; 256*e1eccf28SAndroid Build Coastguard Worker uint32_t dimZ; 257*e1eccf28SAndroid Build Coastguard Worker uint32_t *lodDimX; 258*e1eccf28SAndroid Build Coastguard Worker uint32_t *lodDimY; 259*e1eccf28SAndroid Build Coastguard Worker uint32_t *lodDimZ; 260*e1eccf28SAndroid Build Coastguard Worker uint32_t *arrays; 261*e1eccf28SAndroid Build Coastguard Worker uint32_t lodCount; 262*e1eccf28SAndroid Build Coastguard Worker uint32_t dimYuv; 263*e1eccf28SAndroid Build Coastguard Worker uint32_t arrayCount; 264*e1eccf28SAndroid Build Coastguard Worker bool faces; 265*e1eccf28SAndroid Build Coastguard Worker } state; 266*e1eccf28SAndroid Build Coastguard Worker } mHal; 267*e1eccf28SAndroid Build Coastguard Worker } Type_t; 268*e1eccf28SAndroid Build Coastguard Worker 269*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 270*e1eccf28SAndroid Build Coastguard Worker /***************************************************************************** 271*e1eccf28SAndroid Build Coastguard Worker * CAUTION 272*e1eccf28SAndroid Build Coastguard Worker * 273*e1eccf28SAndroid Build Coastguard Worker * The following structure layout provides a more efficient way to access 274*e1eccf28SAndroid Build Coastguard Worker * internal members of the C++ class Mesh owned by librs. Unfortunately, 275*e1eccf28SAndroid Build Coastguard Worker * since this class has virtual members, we can't simply use offsetof() or any 276*e1eccf28SAndroid Build Coastguard Worker * other compiler trickery to dynamically get the appropriate values at 277*e1eccf28SAndroid Build Coastguard Worker * build-time. This layout may need to be updated whenever 278*e1eccf28SAndroid Build Coastguard Worker * frameworks/base/libs/rs/rsMesh.h is modified. 279*e1eccf28SAndroid Build Coastguard Worker * 280*e1eccf28SAndroid Build Coastguard Worker * Having the layout information available in this file allows us to 281*e1eccf28SAndroid Build Coastguard Worker * accelerate functionality like rsMeshGetVertexAllocationCount(). Without this 282*e1eccf28SAndroid Build Coastguard Worker * information, we would not be able to inline the bitcode, thus resulting in 283*e1eccf28SAndroid Build Coastguard Worker * potential runtime performance penalties for tight loops operating on 284*e1eccf28SAndroid Build Coastguard Worker * meshes. 285*e1eccf28SAndroid Build Coastguard Worker * 286*e1eccf28SAndroid Build Coastguard Worker *****************************************************************************/ 287*e1eccf28SAndroid Build Coastguard Worker typedef struct Mesh { 288*e1eccf28SAndroid Build Coastguard Worker char __pad[32]; 289*e1eccf28SAndroid Build Coastguard Worker struct { 290*e1eccf28SAndroid Build Coastguard Worker void *drv; 291*e1eccf28SAndroid Build Coastguard Worker struct { 292*e1eccf28SAndroid Build Coastguard Worker void **vertexBuffers; 293*e1eccf28SAndroid Build Coastguard Worker uint32_t vertexBuffersCount; 294*e1eccf28SAndroid Build Coastguard Worker 295*e1eccf28SAndroid Build Coastguard Worker // indexBuffers[i] could be nullptr, in which case only primitives[i] is used 296*e1eccf28SAndroid Build Coastguard Worker void **indexBuffers; 297*e1eccf28SAndroid Build Coastguard Worker uint32_t indexBuffersCount; 298*e1eccf28SAndroid Build Coastguard Worker rs_primitive *primitives; 299*e1eccf28SAndroid Build Coastguard Worker uint32_t primitivesCount; 300*e1eccf28SAndroid Build Coastguard Worker } state; 301*e1eccf28SAndroid Build Coastguard Worker } mHal; 302*e1eccf28SAndroid Build Coastguard Worker } Mesh_t; 303*e1eccf28SAndroid Build Coastguard Worker #endif //__LP64__ 304*e1eccf28SAndroid Build Coastguard Worker 305*e1eccf28SAndroid Build Coastguard Worker // Null version of _RS_OBJECT_DECL defined in script_api/rs_object_types.spec 306*e1eccf28SAndroid Build Coastguard Worker #ifndef __LP64__ 307*e1eccf28SAndroid Build Coastguard Worker #define RS_NULL_OBJ {0} 308*e1eccf28SAndroid Build Coastguard Worker #else 309*e1eccf28SAndroid Build Coastguard Worker #define RS_NULL_OBJ {0, 0, 0, 0} 310*e1eccf28SAndroid Build Coastguard Worker #endif //__LP64__ 311*e1eccf28SAndroid Build Coastguard Worker 312*e1eccf28SAndroid Build Coastguard Worker #endif // _RS_CORE_H_ 313