JuliaMultimedia / SimpleDirectMediaLayer.jl

SDL2
MIT License
81 stars 18 forks source link

SDL_image #29

Closed mweastwood closed 4 years ago

mweastwood commented 5 years ago

Thanks for making this package! I'm using it in a personal project and it's been working great so far!

It'd be nice to have SDL_image wrapped as well to help load textures from png files, etc. I spent an afternoon trying to get Clang.jl to cooperate with me so that this could be a PR instead of an issue, but I couldn't figure out the correct incantation (it seems like Clang.jl is in a state of flux at the moment?).

For now I've worked around my immediate need by using SDL_CreateRGBSurfaceFrom and loading images with FileIO.jl, but it's super hacky.

jonathanBieler commented 5 years ago

SDL_image is an extension right ? As I remember is was a bit awkward to install some of them with BinDeps, but it looks like SDL_image is in Homebrew and apt at least so it should be feasible. Clang tests all pass on 1.0, I can check if I still have my script.

mweastwood commented 5 years ago

I think so.

Clang.jl just had some giant PR merged when I was looking at this, so I'm pretty skeptical of the passing tests.

If there are BinDeps problems, I'd be happy to help with putting together a BinaryBuilder/Provider repo as well. I have some experience with that.

jonathanBieler commented 5 years ago

I would be curious to see how BinaryBuilder, I've tried it a couple of times at the beginning but I always had issues with it. For Clang I should still have the v0.6 version working, I could use that.

mweastwood commented 5 years ago

BinaryBuilder works really well now for simpler things. I think the biggest remaining issue with it is that they haven't quite figured out how to share binary dependencies between Julia packages. For instance, to build SDL_image, we're going to have a dependency on libpng, which is built for the ImageMagick.jl package (at https://github.com/SimonDanisch/LibpngBuilder). So either we declare a dependency or ImageMagick.jl or we have to build libpng ourselves and you potentially end up with two copies of libpng if you have both packages installed. The relevant issue for fixing this is JuliaLang/Pkg.jl#841

jonathanBieler commented 5 years ago

Yeah that's not ideal. In our case I guess having two copies of libpng wouldn't too bad since it's small.

jonathanBieler commented 5 years ago

@mweastwood I've made a pull request #30 with SDL_image wrapped. I only added the build for mac os and I haven't made any tests besides calling a function into the library. You can check it out and see if it works.

aviks commented 4 years ago

Fixed by #42