msf_gif.h»Forums
Taylor Robbins
42 posts / 1 project
I love programming and the joy that comes from creating useful things. I'm the author of Const Port. I like to make toy games as a hobby.
Plan to use in Princess Castle Quest
Edited by Taylor Robbins on
Hey NotNullNotVoid, I know I talked to you on twitch once about gif encoding. I had implemented a terrible version of a gif encoder for our current game project and was blown away hearing how well implemented your gif encoder was. I think now that this is a handmade project I will spend some time one day on stream and try using this gif encoder to replace the current one i made. If you’re curious to see what implementation/usage looks like I can let you know when I stream the process. I also will probably take a peak inside and see if I can wrap my head around the implementation so I have a good idea of how various features are accomplished.

Two questions:
1. What is the license for this code? Am I allowed to use it in a commercial project? Can I put you in the credits for the game and what you want to be credited as? (NotNullNotVoid? Not Null Not Void? Miles? Something else?)
2. Do you want to see me use the library on stream?

Let me know if you have any questions or warnings. Also if I am not allowed to use in a commercial project that’s totally fine, just let me know. I would be willing to set up a license agreement as well for a fixed payment for usage of the library in this project if that’s something you would be okay with.
Mārtiņš Možeiko
2559 posts / 2 projects
Plan to use in Princess Castle Quest
License seems to be included in the source file itself, scroll to the bottom. Public domain means you can do whatever you want.
Miles
131 posts / 4 projects
Plan to use in Princess Castle Quest
It's dual-licenced public domain and MIT, exactly the same as the STB libs (in fact I copy-pasted the license agreement from stb_image.h). So you can do anything you want with it, with no limits or requirements. You don't need to include me in the game's credits, but if you do, I would prefer to be credited as "Miles Fogle".

I think it would be cool to see you look at the library on stream! And if you want to understand how the library is implemented I'd be happy to chat about it and answer any questions.
Taylor Robbins
42 posts / 1 project
I love programming and the joy that comes from creating useful things. I'm the author of Const Port. I like to make toy games as a hobby.
Plan to use in Princess Castle Quest
Oh snap! I had tried to find the license but I only checked the top of the file which was just description of the API so I didn't think it was declared. Awesome, I will let you know when I plan to stream implementation. Is there a specific day of the week that works best for you between the hours of 9AM and 2PM PDT? If not I can stream at a non-standard time that you are available for
Miles
131 posts / 4 projects
Plan to use in Princess Castle Quest
I don't have a set schedule, so any day is about as good as any other for me.
Taylor Robbins
42 posts / 1 project
I love programming and the joy that comes from creating useful things. I'm the author of Const Port. I like to make toy games as a hobby.
Plan to use in Princess Castle Quest
Edited by Taylor Robbins on

Hey Miles, sorry for not really following through with this intent. It ended up not being a high enough priority for PCQ but I finally got around to using msf_gif today and my gosh is it AWESOME! I am getting gif exporting working in my "Pig Engine" codebase and the implementation of msf_gif went off almost without a hitch! The format for the API was super intuitive and the result from the encoding process looks basically perfect: https://i.imgur.com/UX8NQHd.gif

The one annoyance I ran into was a couple of warnings that I keep enabled that msf_gif.h doesn't satisfy. I have modified the file myself to appease the compiler but they aren't hard changes to integrate if you are willing to do that sort of thing. These are MSVC C++ compiler warnings that come into play at /W4:

Line 339: k hides previous declaration of k. I renamed it to _k but would nice if this or the previous declaration had a different name that made sense

Lines 422, 433, 434, 435, 472, 515: Implicit cast to uint8_t. Just needs explicit casts to uint8_t to make it happy.

Line 498: Implicit cast to int16_t. Again just needs a cast.

Here's a screenshot of the implementation if you are curious: https://i.imgur.com/2SYpKk4.png For now I am just asserting on errors and using the API at the end of my capture process rather than relying on it to support the capture process but these are both things I can and probably will change later as they become more important.

Anyways, all-in-all, really nice work! I'm excited to finally have a proper gif encoding implementation in my projects rather than the hacky one I had before.

Miles
131 posts / 4 projects
Plan to use in Princess Castle Quest
Replying to ProfessorSil (#26005)

Thanks for letting me know, I'll fix those warnings in the next release and test builds with /W4 going forward.