oz123 / awesome-c

A curated list of awesome C frameworks, libraries, resources and other shiny things. Inspired by all the other awesome-... projects out there.
Creative Commons Attribution Share Alike 4.0 International
9.48k stars 834 forks source link

add AssetKit, xml and cmt graphics library #141

Closed recp closed 4 years ago

recp commented 4 years ago

Hi,

Here a few good libraries to add the list.

AssetKit

I was working on 3D (maybe + 2D later) importer and util library written in pure 100% C. It is ready to be public. It can import glTF 2.0, COLLADA 1.4/1.41/1.5 files with single interface. Its size is very small e.g ~244KB + stb_image.h (160KB) == ~404KB. And it provides lot of options and utils to make loading and rendering stages flexible, fast as possible. In the future it may support additional formats to import and export.

xml

To make AssetKit portable, make build fast and make parsing XML easy, I have dropped libxml2 and wrote new XML parser (and a JSON parser). I have used it in AssetKit to parse XMLs.

The XML parser doesn't alloc and copy XML contents... It only allocs memory for data structure or tokens. It creates pointers by using existing XML content. It may support pointers on file too in the future.

the parsing happens in single function so it must be very fast. In the future SIMD may be supported to make it fastest.

Related PR: https://github.com/kozross/awesome-c/pull/101

cmt

This is C wrappers for Apple's new graphics library/framework: https://developer.apple.com/metal

Because AFAIK Apple only provides Objective-C and Swift APIs for Metal. This is why I have wrote this library. C and C++ can use this library to bind their graphics-related softwares to Metal.

Since this is written in C, any language can use this to access Metal. OpenGL is deprecated on Apple platforms e.g macOS, iOS, iPadOS...

in progress: gpu and ui

There is a GPU library which I'm working on: http://github.com/recp/gpu and ui library: https://github.com/recp/ui, I'll create a PR for them after finished.

recp commented 4 years ago

/cc @kozross (notification purpose)

kozross commented 4 years ago

@recp Thanks for that! I always appreciate contributions, but as I'm quite busy at my job, I won't be able to properly review these for at least a few days. Sorry for the delay - and I appreciate your patience.

recp commented 4 years ago

@kozross thanks 🤗 No problem.

recp commented 4 years ago

@kozross ping.

kozross commented 4 years ago

@recp I added a comment in the review, and the branch has conflicts that need fixing?

recp commented 4 years ago

@kozross conflicts are resolved.