2016-04-26 15:00:35 +03:00
# import <Foundation / Foundation.h>
2017-08-31 13:17:22 +03:00
# include <simd/simd.h>
2016-04-26 15:00:35 +03:00
# include "rename.h"
2017-08-31 13:17:22 +03:00
# if !TARGET_OS_WATCH
# import <ModelIO / ModelIO.h>
# endif
2016-04-26 15:00:35 +03:00
# ifdef __cplusplus
extern " C " {
# endif
int theUltimateAnswer ( ) ;
void useZLib ( ) ;
2017-08-31 13:17:22 +03:00
void x_get_matrix_float2x2 ( id self , const char * sel , float * r0c0 , float * r0c1 , float * r1c0 , float * r1c1 ) ;
void x_get_matrix_float3x3 ( id self , const char * sel , float * r0c0 , float * r0c1 , float * r0c2 , float * r1c0 , float * r1c1 , float * r1c2 , float * r2c0 , float * r2c1 , float * r2c2 ) ;
void x_get_matrix_float4x4 ( id self , const char * sel , float * r0c0 , float * r0c1 , float * r0c2 , float * r0c3 , float * r1c0 , float * r1c1 , float * r1c2 , float * r1c3 , float * r2c0 , float * r2c1 , float * r2c2 , float * r2c3 , float * r3c0 , float * r3c1 , float * r3c2 , float * r3c3 ) ;
2017-09-13 19:46:06 +03:00
void x_get_matrix_float4x3 ( id self , const char * sel , float * r0c0 , float * r0c1 , float * r0c2 , float * r0c3 , float * r1c0 , float * r1c1 , float * r1c2 , float * r1c3 , float * r2c0 , float * r2c1 , float * r2c2 , float * r2c3 ) ;
2017-08-31 13:17:22 +03:00
# if !TARGET_OS_WATCH
void x_mdltransformcomponent_get_local_transform ( id < MDLTransformComponent > self , NSTimeInterval time , float * r0c0 , float * r0c1 , float * r0c2 , float * r0c3 , float * r1c0 , float * r1c1 , float * r1c2 , float * r1c3 , float * r2c0 , float * r2c1 , float * r2c2 , float * r2c3 , float * r3c0 , float * r3c1 , float * r3c2 , float * r3c3 ) ;
void x_mdltransform_create_global_transform ( MDLObject * object , NSTimeInterval time , float * r0c0 , float * r0c1 , float * r0c2 , float * r0c3 , float * r1c0 , float * r1c1 , float * r1c2 , float * r1c3 , float * r2c0 , float * r2c1 , float * r2c2 , float * r2c3 , float * r3c0 , float * r3c1 , float * r3c2 , float * r3c3 ) ;
void x_mdltransform_get_rotation_matrix ( MDLTransform * self , NSTimeInterval time , float * r0c0 , float * r0c1 , float * r0c2 , float * r0c3 , float * r1c0 , float * r1c1 , float * r1c2 , float * r1c3 , float * r2c0 , float * r2c1 , float * r2c2 , float * r2c3 , float * r3c0 , float * r3c1 , float * r3c2 , float * r3c3 ) ;
# endif
2016-04-26 15:00:35 +03:00
/*
* Various structs used in ObjCRegistrarTest
*/
2016-10-07 13:48:01 +03:00
# include "libtest.structs.h"
2016-04-26 15:00:35 +03:00
typedef unsigned int ( ^ RegistrarTestBlock ) ( unsigned int magic ) ;
/*
* ObjC test class used for registrar tests .
*/
@ interface ObjCRegistrarTest : NSObject {
}
@ property int Pi1 ;
@ property int Pi2 ;
@ property int Pi3 ;
@ property int Pi4 ;
@ property int Pi5 ;
@ property int Pi6 ;
@ property int Pi7 ;
@ property int Pi8 ;
@ property int Pi9 ;
@ property float Pf1 ;
@ property float Pf2 ;
@ property float Pf3 ;
@ property float Pf4 ;
@ property float Pf5 ;
@ property float Pf6 ;
@ property float Pf7 ;
@ property float Pf8 ;
@ property float Pf9 ;
@ property double Pd1 ;
@ property double Pd2 ;
@ property double Pd3 ;
@ property double Pd4 ;
@ property double Pd5 ;
@ property double Pd6 ;
@ property double Pd7 ;
@ property double Pd8 ;
@ property double Pd9 ;
@ property char Pc1 ;
@ property char Pc2 ;
@ property char Pc3 ;
@ property char Pc4 ;
@ property char Pc5 ;
2016-10-07 13:48:01 +03:00
# include "libtest.properties.h"
2016-04-26 15:00:35 +03:00
- ( void ) V ;
- ( float ) F ;
- ( double ) D ;
- ( struct Sd ) Sd ;
- ( struct Sf ) Sf ;
- ( void ) V : ( int ) i1 i : ( int ) i2 i : ( int ) i3 i : ( int ) i4 i : ( int ) i5 i : ( int ) i6 i : ( int ) i7 ; // 6 in regs, 7th in mem.
- ( void ) V : ( float ) f1 f : ( float ) f2 f : ( float ) f3 f : ( float ) f4 f : ( float ) f5 f : ( float ) f6 f : ( float ) f7 f : ( float ) f8 f : ( float ) f9 ; // 8 in regs, 9th in mem.
- ( void ) V : ( int ) i1 i : ( int ) i2 i : ( int ) i3 i : ( int ) i4 i : ( int ) i5 i : ( int ) i6 i : ( int ) i7 f : ( float ) f1 f : ( float ) f2 f : ( float ) f3 f : ( float ) f4 f : ( float ) f5 f : ( float ) f6 f : ( float ) f7 f : ( float ) f8 f : ( float ) f9 ; // 6 ints in regs, 8 floats in in regs, 1 int in mem, 1 float in mem.
- ( void ) V : ( double ) d1 d : ( double ) d2 d : ( double ) d3 d : ( double ) d4 d : ( double ) d5 d : ( double ) d6 d : ( double ) d7 d : ( double ) d8 d : ( double ) d9 ; // 8 in regs, 9th in mem.
- ( void ) V : ( int ) i1 i : ( int ) i2 Siid : ( struct Siid ) Siid1 i : ( int ) i3 i : ( int ) i4 d : ( double ) d1 d : ( double ) d2 d : ( double ) d3 i : ( int ) i5 i : ( int ) i6 i : ( int ) i7 ;
- ( void ) V : ( int ) i1 i : ( int ) i2 f : ( float ) f1 Siid : ( struct Siid ) Siid1 i : ( int ) i3 i : ( int ) i4 d : ( double ) d1 d : ( double ) d2 d : ( double ) d3 i : ( int ) i5 i : ( int ) i6 i : ( int ) i7 ;
- ( void ) V : ( char ) c1 c : ( char ) c2 c : ( char ) c3 c : ( char ) c4 c : ( char ) c5 i : ( int ) i1 d : ( double ) d1 ;
- ( void ) invoke_V ;
- ( float ) invoke_F ;
- ( double ) invoke_D ;
- ( struct Sf ) Sf_invoke ;
- ( RegistrarTestBlock ) methodReturningBlock ;
@ property ( nonatomic , readonly ) RegistrarTestBlock propertyReturningBlock ;
- ( bool ) testBlocks ;
2016-05-31 12:58:27 +03:00
- ( void ) idAsIntPtr : ( id ) p1 ;
2017-07-03 20:16:33 +03:00
# include "libtest.methods.h"
2017-08-02 09:26:29 +03:00
- ( void ) outNSErrorOnStack : ( int ) i1 i : ( int ) i2 i : ( int ) i3 i : ( int ) i4 i : ( int ) i5 i : ( int ) i6 err : ( NSError * * ) err ; // 6 in regs, 7th (out) in mem (on all architectures)
- ( void ) outNSErrorOnStack : ( id ) obj1 obj : ( id ) obj2 obj : ( id ) obj3 int64 : ( long long ) l4 i : ( int ) i5 err : ( NSError * * ) err ; // 5 in regs, 6th (out) in mem (on at least x86-64)
2016-04-26 15:00:35 +03:00
@ end
2016-05-11 14:27:51 +03:00
/*
* ObjC test class used for exception tests .
*/
@ interface ObjCExceptionTest : NSObject {
}
- ( void ) throwObjCException ;
- ( void ) throwManagedException ;
- ( void ) invokeManagedExceptionThrower ;
- ( void ) invokeManagedExceptionThrowerAndRethrow ;
- ( void ) invokeManagedExceptionThrowerAndCatch ;
@ end
2016-05-31 12:58:27 +03:00
@ protocol ObjCProtocolTest
@ required
- ( void ) idAsIntPtr : ( id ) p1 ;
@ end
// We need this class so that the ObjCProtocolTest protocol
// actually ends up in the library.
@ interface ObjCProtocolClassTest : NSObject < ObjCProtocolTest > {
}
- ( void ) idAsIntPtr : ( id ) p1 ;
@ end
2016-04-26 15:00:35 +03:00
# ifdef __cplusplus
} /* extern "C" */
# endif