overdev / raylib-py

A Python binding for the great C library raylib.
Other
199 stars 18 forks source link

attempts to import DLL methods not in the current release 2.0 of raylib #1

Closed ryancollingwood closed 1 year ago

ryancollingwood commented 5 years ago

Referring both to https://github.com/raysan5/raylib/blob/2.0.0/src/raylib.h and analysis of released DLL with DependencyWalker.

The __init__.py attempts to load the following functions which do not exist in the 2.0 release of raylib

They are in the development version, but would be good to people a heads up about this in the readme.

Cheers

overdev commented 5 years ago

Thanks for pointing this issue! I knew there was something I wasn't paying attention to (and sorry for the delay).

These functions are not available because the *.dll installed with pip is a custom one. I've been messing around with some future PR wich intends to include BeginClipRect and EndClipRect and forgot to create a branch first. DrawTextureNPatch (https://github.com/raysan5/raylib/pull/616) got merged after 2.0.0 release so you'll have to build it on your system to have it.

I apologize. The cause of this issue is my reprehensible lack of experience in Git integration workflow. I'll provide a fix for it as soon as possible.

ryancollingwood commented 5 years ago

Cheers for the quick response.

In the interim if you could provide a 64-bit version of the windows dll you've packaged that would rock ^_^ I having some struggles getting my head around the cmake pipeline for building from the current raycastlib source,

Managed to get around the issue by commenting out the offending lines. Possibly could wrap em up in a try catch AttributeValue (?), but it does present a question around compatibiltiy for differeing versions.

overdev commented 5 years ago

Just spent a couple hours trying to build raylib with mingw64 but this is beyond my ability. I wish I had the 64-bit DLL too.

Currently, the repo source got the necessary fix. If the fix is OK, the additional functions are not loaded anymore, unless "ENABLE_V2_0_0_FEATURE_DRAWTEXTURENPATCH" and "ENABLE_V2_0_0_FEATURE_CLIPRECT" are in the os.environ keys. That's quite ugly, but it is temporary.

By the way, it is worth to mention that, of the 3 additional functions, only draw_texture_npatch() works. For some strange reason, the clip rect functions compile without problems but have no effect when called.

Tomorrow i'll update the release files and upload the wheel to PyPA (not before testing!).

overdev commented 5 years ago

@ryancollingwood, just released v0.1.1.

You can upgrade it with pip: pip install raylip-py -U or py -3.x-32 -m pip install raylib-py -U, depending on your python versions installed, or download from the Releases tab and install from that wheel/sdist.

I'll see what I can do to get an x64 build working, so I'm leaving this issue open.

carlsmith commented 5 years ago

The cause of this issue is my reprehensible lack of experience in Git integration workflow.

You're in good company, mate.