Merge branch 'fix/pointerofpointer' of scuti/lib3ddevil1 into feature/pythonbinding

This commit is contained in:
suhrke 2018-04-24 04:18:41 -07:00 committed by Gitea
commit fc7558a0b6

View File

@ -67,17 +67,20 @@ class Devil1TEX_FN(ctypes.Structure):
ctypes.POINTER(TextureBatchDescriptor))),
("getheader", ctypes.CFUNCTYPE(
ctypes.c_bool,
ctypes.POINTER(ctypes.POINTER(TexturePack)),
ctypes.POINTER(
ctypes.POINTER(TexturePack)),
ctypes.c_char_p)),
("getbatchdesc", ctypes.CFUNCTYPE(
ctypes.c_bool,
ctypes.POINTER(TextureBatchDescriptor),
ctypes.POINTER(
ctypes.POINTER(TextureBatchDescriptor)),
ctypes.c_uint,
ctypes.c_char_p,
ctypes.c_uint)),
("getbatch", ctypes.CFUNCTYPE(
ctypes.c_bool,
ctypes.POINTER(TextureBatch),
ctypes.POINTER(
ctypes.POINTER(TextureBatch)),
ctypes.c_uint,
ctypes.c_char_p,
ctypes.c_uint)),
@ -189,7 +192,7 @@ class Devil1GEO_FN(ctypes.Structure):
ctypes.c_char_p)),
("getmeshheader", ctypes.CFUNCTYPE(
ctypes.c_bool,
ctypes.POINTER(MeshHeader),
ctypes.POINTER(ctypes.POINTER(MeshHeader)),
ctypes.c_uint,
ctypes.c_char_p)),
("getbatch", ctypes.CFUNCTYPE(
@ -218,14 +221,26 @@ if __name__ == "__main__":
def textest(devil1tex, texheader):
with open("pl01.pld_1.txp", "rb") as f:
data = f.read()
texheader = ctypes.cast(data, ctypes.POINTER(TexturePack))
devil1tex.printheader(texheader)
# texheader = ctypes.cast(data, ctypes.POINTER(TexturePack))
th = ctypes.pointer(texheader)
devil1tex.getheader(ctypes.byref(th), data)
devil1tex.printheader(th)
batchdesc = TextureBatchDescriptor()
bd = ctypes.pointer(batchdesc)
print("\nbatch descriptor:")
devil1tex.getbatchdesc(ctypes.byref(bd), 1, data, len(data))
def geotest(devil1geo, geoheader):
with open("pl00.pld_0", "rb") as f:
data = f.read()
geoheader = ctypes.cast(data, ctypes.POINTER(Header))
# geoheader = ctypes.cast(data, ctypes.POINTER(Header))
gh = ctypes.pointer(geoheader)
devil1geo.getheader(ctypes.byref(gh), data)
devil1geo.printheader(geoheader)
meshheader = MeshHeader()
mh = ctypes.pointer(meshheader)
devil1geo.getmeshheader(ctypes.byref(mh), 1, data)
devil1geo.printmeshheader(mh)
def main():
sharedlib='./lib3ddevil1.so'