Final Platform Layer » Blog


 — 4 days, 19 hours ago
Hi everyone,

i have another release for you all!

All the Threading stuff is cleaned up and we use the identical mechanism from the OS.
Also i added Condition-Variables as well - the only thing which is still missing are Semaphores, which will come later.

In addition the documentation has basic threading tutorials now -> But i really need somehow to look over it and correct typos.

As always the documentations is updated and the release is tagged.

You can found the documentation here:

Here is the full changelog:

## v0.7.6.0 beta:
- Changed: Renamed fplGetRunningArchitectureType ...
Read More →


 — 6 days, 15 hours ago
Hi everyone,

i have a major release for you all!

ALSA playback is finally implemented and i fixed the thread signals for linux to match windows SetEvent() and WaitFor*Object().
Thanks Mārtiņš Možeiko for helping me out on this one!
Also i added a fallback in the GLX context creation to use glXCreateContext when GLX < 1.3 (Untested).

Documentations are updated and release is tagged.

Here is the full changelog:

## v0.7.5.0 beta:
- Changed: Updated documentations
- Changed: Small refactoring of the internal audio system
- Changed: Renamed fplMutexCreate to fplMutexInit + signature change (Returns bool, Mutex pointer argument)
- Changed ...
Read More →

Trouble with Multithreading

 — 1 week ago
I never thought pthread would be so different from win32, but something is wrong with my pthread implementation.

My simple testbed which creates 3 threads - one master thread, two slave threads does not work at all. Both slave threads waits to get a signal each, the master thread sets both signals - but only one thread gets signaled properly, the other threads waits forever.

So i need some clarifications if my assumptions are correct

1.) Locking a mutex

int lockRes;
do {
  lockRes = pthreadApi->pthread_mutex_lock(handle);
} while(lockRes == EAGAIN);

It cannot be used on multiple threads, only one thread ...
Read More →


 — 1 week, 5 days ago
Hi everyone,

i have a small release for you all!

This time i implemented the modern context creation for GLX and fixed the win32 wrong usage of _InterlockedExchange*64 for x86.

Also there are some news for you:

I recencly launched the website so i have something to host my documentations/tutorials/demos and provide mirrors for releases.

In addition i got myself a license for CLion, so i can fully work on other platforms properly. Unfortunatly i had to create a CMakeLists file for every demo project, otherwise CLion wont compile :-(

Also it seems that my ...
Read More →


 — 2 weeks, 2 days ago
Beta v0.7.3.0

Here is another release for you all. This release contains mostly minor and major bugfixes, but a couple of functions as well.
Also i added LP (Low Precision) and HP (High precision) for fplGetTimeAs*
One of the major issue i finally solved is the hiding/showing of the cursor in win32 ;)

I highly recommend to update to this release as soon as possible. The release is tagged and documentation is updated as well.

One Last thing: I added a develop branch, so the master branch contains the current release only. That way i can work ...
Read More →


 — 2 weeks, 6 days ago
Short update:

All the documentations are updated to match the current implementation state.
In addition i added a few new functions to read out os and platform infos.

Lastly i removed the no-CRT codes to make MSVC happy (_fltused, intrinsics, etc.) -> The user is now responsible for providing such functionality itself.

Here is the full changelog:

## v0.7.2.0 beta:
- Changed: Signature of fplGetRunningMemoryInfos() changed
- Changed: Renamed fplGetSystemMemoryInfos to fplGetRunningMemoryInfos
- Changed: Added "p" prefix to linux and unix app state
- New: Added enum fplArchType
- New: Added fplGetRunningArchitectureType()
- New: Added fplGetArchTypeString()
- New: Added enum fplPlatformType
- New: Added fplGetPlatformType()
- New ...
Read More →

FPL joins the

 — 3 weeks ago
Hi everyone,

as of today, my little/big project called "FPL" - Final Platform Layer joins the community officially! Banzai!!
For that i want to say thanks to the entire team for giving me this opportunity. Thanks!

I want to start off the initial blog entry by introducing the project to new people - but keeping it very short.

So what is this project all about?

FPL is a single-header-file platform abstraction library written in C99 - targeting game/simulation/media development with the main goal of simplicity and handmade-ness. It is similar to SDL but differs in a ...
Read More →