Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from vulkan import ffi
- def __convert_struct_field( s, fields ):
- for field,fieldtype in fields:
- if fieldtype.type.kind == 'primitive':
- yield (field,getattr( s, field ))
- else:
- yield (field, convert_to_python( getattr( s, field ) ))
- def convert_to_python(s):
- if type(s) == int:
- return s
- ffitype=ffi.typeof(s)
- if ffitype.kind == 'struct':
- return dict(__convert_struct_field( s, ffitype.fields ) )
- elif ffitype.kind == 'array':
- if ffitype.item.kind == 'primitive':
- if ffitype.item.cname == 'char':
- return ffi.string(s)
- else:
- return [ s[i] for i in range(ffitype.length) ]
- else:
- return [ convert_to_python(s[i]) for i in range(ffitype.length) ]
- elif ffitype.kind == 'primitive':
- return int(s)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement