/README.md (fdf801afc64559c1f28e7541d20fff748ed08ec1) (1751 bytes) (mode 100644) (type blob)
# CFPS
FGC is a 3D graphics library written in C99. It can be used as a foundation for building graphics applications. Currently supports PC and Android targets.
CFPS is a game engine built on top of FGC.
## Philosophy
Keep it lightweight and simple above all else. Use mature tools and GL3/GLES3 for compatibility. Make it feel good to use and easy to change.
## Boring details
FGC provides a public API that is primarily designed to display 3D graphics with OpenGL ES 2.0. However, it utilizes abstracted generality in the forms of internal helper functions and external helper libraries. These helpers do mundane things like context initialization and image loading. Advanced features like GPU selection are ignored. The public API provides a high level of abstraction to make graphics application development go faster.
For example, the internal function `_fgcLoadSurface` loads an `SDL_Surface` into client memory, utilizing commands from SDL, SDL_Image, and stb_image, depending which headers were included before `fgc.h`. The `.bmp` format is always supported, but SDL_Image and stb_image each allow loading `.png`, `.jpg`, and other formats. `fgcLoadTexture` uses `_fgcLoadSurface` internally to load textures.
Each FGC API call represents dozens or even hundreds of lines of code. This high level of abstraction makes things simple for you, the application programmer. If you need more advanced features, you can modify the library. API documentation is provided in `fgc.h`. `test.c` provides an example of usage.
## Android
Android earned *persona non grata* status in the larger software development community by being a royal pain to work with. Fortunately, FGC apps run on Android if you have 8 GB of free space for compilation.
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
38 |
695eda73b280483a65538083a0f72332636c5d3d |
.gitignore |
100644 |
blob |
2939 |
cbeae2f15a147f5e27de93c390949661b24a7d92 |
Makefile |
100644 |
blob |
1751 |
fdf801afc64559c1f28e7541d20fff748ed08ec1 |
README.md |
040000 |
tree |
- |
7b33f439136f67a2e9835bc58e521b412cbfa729 |
base |
040000 |
tree |
- |
3eea0ba020e5b605711b9382499c957c566175fb |
include |
040000 |
tree |
- |
999a394a0d7346bde07840be1390cb1f5dd9cc2b |
src |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/fluffrabbit/cfps
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/fluffrabbit/cfps
Clone this repository using git:
git clone git://git.rocketgit.com/user/fluffrabbit/cfps
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main