Final Platform Layer 0.9.8-beta
|
Final Platform Layer (FPL) - A C99 Single-Header-File Platform Abstraction Library. More...
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdarg.h>
#include <limits.h>
#include <assert.h>
#include <signal.h>
#include <malloc.h>
Go to the source code of this file.
Data Structures | |
struct | fplAudioDeviceFormat |
A structure containing audio device format runtime properties, such as type, samplerate, channels, etc. More... | |
union | fplAudioDeviceID |
A union containing a id of the underlying backend. More... | |
struct | fplAudioDeviceInfo |
A structure containing the name and the id of the audio device. More... | |
struct | fplAudioSettings |
A structure containing audio settings, such as format, device info, callbacks, backend, etc. More... | |
struct | fplAudioTargetFormat |
A structure containing audio target format configurations, such as type, sample rate, channels, etc. More... | |
union | fplColor32 |
Defines a 32-bit color in format BGRA. More... | |
struct | fplConditionVariable |
The condition variable structure. More... | |
struct | fplConsoleSettings |
A structure containing the title and options for the console. More... | |
struct | fplCPUCapabilities |
A structure that containing the processor capabilities, like MMX,SSE,AVX etc. More... | |
union | fplCPUIDLeaf |
A structure containing the 4-registers (EAX, EBX, ECX, EDX) for a CPU-Leaf. More... | |
struct | fplDisplayInfo |
A struct containing informations about a display. More... | |
struct | fplDisplayMode |
A structure containing one set of display mode settings, such as size, refresh rate, etc. More... | |
struct | fplDynamicLibraryHandle |
A structure containing the internal handle to a dynamic library. More... | |
struct | fplEvent |
A structure containing event data for all event types (Window, Keyboard, Mouse, etc.) More... | |
struct | fplFileEntry |
A structure containing the informations for a file or directory (name, type, attributes, etc.) More... | |
struct | fplFileHandle |
The filehandle structure. More... | |
union | fplFilePermissions |
A union containing the file permissions (UMask) More... | |
struct | fplFileTimeStamps |
A structure containing filestamps for creation/access/modify date. More... | |
struct | fplGamepadButton |
A structure containing properties for a gamepad button (IsDown, etc.) More... | |
struct | fplGamepadEvent |
A structure containing gamepad event data (Type, Device, State, etc.) More... | |
struct | fplGamepadState |
A structure containing the entire gamepad state. More... | |
struct | fplGamepadStates |
A struct containing the full state for all gamepad devices. More... | |
struct | fplGraphicsApiSettings |
A union that contains graphics api settings. More... | |
struct | fplImageSource |
A structure containing data for working with a image source. More... | |
struct | fplInputSettings |
A structure containing input settings. More... | |
union | fplInternalConditionVariable |
A union containing the internal condition variable for any platform. More... | |
union | fplInternalDynamicLibraryHandle |
A union containing the library handle for any platform. More... | |
union | fplInternalFileEntryHandle |
A union containing the internal filehandle for any platform. More... | |
union | fplInternalFileHandle |
A union containing the internal filehandle for any platform. More... | |
struct | fplInternalFileRootInfo |
A structure containing the internal root file informations. More... | |
union | fplInternalMutexHandle |
A union containing the internal mutex handle for any platform. More... | |
union | fplInternalSemaphoreHandle |
A union containing the internal semaphore handle for any platform. More... | |
union | fplInternalSignalHandle |
A union containing the internal signal handle for any platform. More... | |
union | fplInternalThreadHandle |
A union containing the thread handle for any platform. More... | |
struct | fplKeyboardEvent |
A structure containing keyboard event data (Type, Keycode, Mapped key, etc.) More... | |
struct | fplKeyboardState |
A struct containing the full keyboard state. More... | |
struct | fplLogSettings |
A structure containing log settings. More... | |
struct | fplLogWriter |
A structure containing log writer settings. More... | |
struct | fplLogWriterConsole |
A structure containing console logging properties. More... | |
struct | fplLogWriterCustom |
A structure containing properties custom logging properties. More... | |
struct | fplMemoryAllocationSettings |
A structure for setting up memory allocation usage. More... | |
struct | fplMemoryBlock |
Defines a memory block. More... | |
struct | fplMemoryInfos |
A structure that contains informations about current memory usage. More... | |
struct | fplMemorySettings |
A structure for setting up memory settings for dynamic and temporary allocations. More... | |
struct | fplMouseEvent |
A structure containing mouse event data (Type, Button, Position, etc.) More... | |
struct | fplMouseState |
A struct containing the full mouse state. More... | |
struct | fplMutexHandle |
The mutex handle structure. More... | |
struct | fplOpenGLSettings |
A structure that contains OpenGL video settings. More... | |
struct | fplOSVersionInfos |
A structure that contains the version information for the operating system. More... | |
struct | fplSemaphoreHandle |
The semaphore handle structure. More... | |
struct | fplSettings |
A structure containing settings, such as window, video, etc. More... | |
struct | fplSignalHandle |
The signal handle structure. More... | |
union | fplSpecificAudioSettings |
A union containing backend specific audio settings. More... | |
struct | fplThreadHandle |
The thread handle structure. More... | |
struct | fplThreadParameters |
Contains creation parameters for fplThreadCreateWithParameters() More... | |
union | fplTimestamp |
A structure storing a timestamp, used for delta measurements only. More... | |
struct | fplVersionInfo |
A structure that contains version informations. More... | |
struct | fplVideoBackBuffer |
A structure containing video backbuffer properties. More... | |
struct | fplVideoRect |
A structure defining a video rectangles position and size. More... | |
union | fplVideoRequirements |
Stores the video requirements for the desired video backend. More... | |
struct | fplVideoRequirementsVulkan |
Stores the requirements for the Vulkan video backend. More... | |
struct | fplVideoSettings |
A structure that contains video settings such as backend, v-sync, API-settings, etc. More... | |
struct | fplVideoSurface |
Stores the surface properties for the active video backend. More... | |
struct | fplVideoSurfaceOpenGL |
Stores the surface properties for the OpenGL video backend. More... | |
struct | fplVideoSurfaceVulkan |
Stores the surface properties for the Vulkan video backend. More... | |
union | fplVideoWindow |
Stores the video window handles. More... | |
struct | fplVulkanSettings |
A structure that contains Vulkan video settings. More... | |
struct | fplWindowCallbacks |
A structure containing the window callbacks. More... | |
struct | fplWindowDropFiles |
A structure containing number and dropped files informations. More... | |
struct | fplWindowEvent |
A structure containing window event data (Size, Position, etc.) More... | |
struct | fplWindowPosition |
A structure containing the position of a window. More... | |
struct | fplWindowSettings |
A structure containing window settings, such as size, title etc. More... | |
struct | fplWindowSize |
A structure containing the size of a window. More... | |
Macros | |
#define | fpl_api |
Api call. | |
#define | FPL_APPTYPE_WINDOW |
Detected window application type. | |
#define | fpl_common_api |
Common api. | |
#define | FPL_CPU_32BIT |
32-bit CPU detected | |
#define | fpl_dllexport |
Link-library Export. | |
#define | fpl_dllimport |
Link-library Import. | |
#define | fpl_dlllocal |
Link-library Local. | |
#define | FPL_ENUM_AS_FLAGS_OPERATORS(type) |
Macro for optionally adding enum operators for bitwise and/or/xor. | |
#define | fpl_extern |
External call. | |
#define | FPL_FILE_EXT_SEPARATOR |
File extension character. | |
#define | fpl_force_inline |
Always inlines this function. | |
#define | FPL_FUNCTION_NAME |
Function name macro. | |
#define | fpl_globalvar |
Global persistent variable. | |
#define | fpl_inline |
Inline function. | |
#define | fpl_internal |
Private/Internal function. | |
#define | fpl_internal_inline |
Internal inlined function. | |
#define | FPL_IS_IDE |
Is any IDE active, such as Intellisense or any jetbrains IDE? | |
#define | fpl_localvar |
Local persistent variable. | |
#define | fpl_main |
Main entry point api definition. | |
#define | FPL_MAX_BUFFER_LENGTH |
Maximum length of an internal buffer (in bytes) | |
#define | FPL_MAX_FILENAME_LENGTH |
Maximum length of a filename. | |
#define | FPL_MAX_GAMEPAD_STATE_COUNT |
Max number of gamepad states. | |
#define | FPL_MAX_KEYBOARD_STATE_COUNT |
Max number of keyboard states. | |
#define | FPL_MAX_NAME_LENGTH |
Maximum length of a name (in characters) | |
#define | FPL_MAX_PATH_LENGTH |
Maximum length of a path. | |
#define | fpl_no_inline |
Prevents inlining of this function. | |
#define | FPL_NOT_IMPLEMENTED |
This will full-on crash when something is not implemented always. | |
#define | fpl_null |
Null. | |
#define | FPL_PATH_SEPARATOR |
Path separator character. | |
#define | fpl_platform_api |
Platform api. | |
#define | FPL_TIMEOUT_INFINITE |
Infinite timeout constant. | |
#define | fplAlignAs(N) |
Structure alignment in bytes. | |
#define | fplAlwaysAssert(exp) |
Always crashes the application with a null-pointer assignment, when the specified expression evaluates to false . | |
#define | fplArrayCount(arr) |
Returns the element count from a static array. This should ideally produce a compile error when passing a pointer to it. | |
#define | fplAsm |
A assembler compiler instruction (asm) | |
#define | fplAssert(exp) |
Breaks with an runtime assertion, when the specified expression evaluates to false . | |
#define | fplAssertPtr(ptr) |
Breaks when the specified pointer is fpl_null. | |
#define | fplClearStruct(ptr) |
Clears the given struct pointer to zero. | |
#define | fplCopyStruct(src, dst) |
Copies the given source struct into the destination struct. | |
#define | fplDebugBreak() |
Stops the debugger on this line always. | |
#define | fplGetAlignedSize(size, alignment) |
Returns the given size, extended to satisfy the given alignment boundary. | |
#define | fplGetAlignmentOffset(value, alignment) |
Returns the offset for the value to satisfy the given alignment boundary. | |
#define | fplGigaBytes(value) |
Returns the number of bytes for the given gigabytes. | |
#define | fplHasInclude(inc) |
Test for include existence. | |
#define | fplIsAligned(ptr, alignment) |
Returns true when the given pointer address is aligned to the given alignment. | |
#define | fplIsBigEndian() |
Returns true when the given platform is big-endian. | |
#define | fplIsBitSet(value, bit) |
Returns true when the given value has the given bit set. | |
#define | fplIsLittleEndian() |
Returns true when the given platform is little-endian. | |
#define | fplIsPowerOfTwo(value) |
Returns true when the given value is a power of two value. | |
#define | fplKiloBytes(value) |
Returns the number of bytes for the given kilobytes. | |
#define | fplMax(a, b) |
Returns the biggest value of A and B. | |
#define | fplMegaBytes(value) |
Returns the number of bytes for the given megabytes. | |
#define | fplMin(a, b) |
Returns the smallest value of A and B. | |
#define | fplMinAlignment |
Minimum structure alignment. | |
#define | fplOffsetOf(type, field) |
Returns the offset in bytes for the specified structure type and field name. | |
#define | fplStackAllocate(size) |
Manually allocate the number of specified bytes of memory on the stack. | |
#define | fplStaticAssert(exp) |
Breaks the compilation, when the specified expression evaluates to false . | |
#define | fplStructInit |
Initializes a struct by the given type. | |
#define | fplStructSet |
Sets a struct pointer to the given value. | |
#define | fplTeraBytes(value) |
Returns the number of bytes for the given terabytes. | |
#define | fplZeroInit |
Initializes a struct to zero. | |
Typedefs | |
typedef uint32_t() | fpl_audio_client_read_callback(const fplAudioDeviceFormat *deviceFormat, const uint32_t frameCount, void *outputSamples, void *userData) |
A callback for reading audio samples from the client. | |
typedef int32_t | fpl_b32 |
32-bit boolean | |
typedef void() | fpl_log_func_callback(const char *funcName, const int lineNumber, const fplLogLevel level, const char *message) |
A callback for printing a log message. | |
typedef void *() | fpl_memory_allocate_callback(void *userData, const size_t size, const size_t alignment) |
Custom memory allocation callback. | |
typedef void() | fpl_memory_release_callback(void *userData, void *ptr) |
Custom memory release callback. | |
typedef void() | fpl_run_thread_callback(const fplThreadHandle *thread, void *data) |
A callback to execute user code inside another thread. | |
typedef bool() | fpl_window_event_callback(const fplPlatformType platformType, void *windowState, void *rawEventData, void *userData) |
A callback executed for each raw window event. | |
typedef fpl_window_event_callback | fpl_window_exposed_callback |
A callback executed when the window needs to be exposed/repainted. | |
typedef enum fplAudioBackendType | fplAudioBackendType |
An enumeration of audio backend types. | |
typedef enum fplAudioDefaultFields | fplAudioDefaultFields |
An enumeration of audio default fields. | |
typedef struct fplAudioDeviceFormat | fplAudioDeviceFormat |
A structure containing audio device format runtime properties, such as type, samplerate, channels, etc. | |
typedef union fplAudioDeviceID | fplAudioDeviceID |
A union containing a id of the underlying backend. | |
typedef struct fplAudioDeviceInfo | fplAudioDeviceInfo |
A structure containing the name and the id of the audio device. | |
typedef enum fplAudioFormatType | fplAudioFormatType |
An enumeration of audio format types. | |
typedef enum fplAudioLatencyMode | fplAudioLatencyMode |
An enumeration of audio latency modes. | |
typedef enum fplAudioResultType | fplAudioResultType |
An enumeration of audio results. | |
typedef struct fplAudioSettings | fplAudioSettings |
A structure containing audio settings, such as format, device info, callbacks, backend, etc. | |
typedef struct fplAudioTargetFormat | fplAudioTargetFormat |
A structure containing audio target format configurations, such as type, sample rate, channels, etc. | |
typedef enum fplButtonState | fplButtonState |
An enumeration of button states. | |
typedef union fplColor32 | fplColor32 |
Defines a 32-bit color in format BGRA. | |
typedef struct fplConditionVariable | fplConditionVariable |
The condition variable structure. | |
typedef struct fplConsoleSettings | fplConsoleSettings |
A structure containing the title and options for the console. | |
typedef enum fplCPUArchType | fplCPUArchType |
An enumeration of architecture types. | |
typedef struct fplCPUCapabilities | fplCPUCapabilities |
A structure that containing the processor capabilities, like MMX,SSE,AVX etc. | |
typedef union fplCPUIDLeaf | fplCPUIDLeaf |
A structure containing the 4-registers (EAX, EBX, ECX, EDX) for a CPU-Leaf. | |
typedef struct fplDisplayInfo | fplDisplayInfo |
A struct containing informations about a display. | |
typedef struct fplDisplayMode | fplDisplayMode |
A structure containing one set of display mode settings, such as size, refresh rate, etc. | |
typedef struct fplDynamicLibraryHandle | fplDynamicLibraryHandle |
A structure containing the internal handle to a dynamic library. | |
typedef struct fplEvent | fplEvent |
A structure containing event data for all event types (Window, Keyboard, Mouse, etc.) | |
typedef enum fplEventType | fplEventType |
An enumeration of event types (Window, Keyboard, Mouse, ...) | |
typedef enum fplFileAttributeFlags | fplFileAttributeFlags |
An enumeratation of file attribute flags (Normal, Readonly, Hidden, etc.) | |
typedef struct fplFileEntry | fplFileEntry |
A structure containing the informations for a file or directory (name, type, attributes, etc.) | |
typedef enum fplFileEntryType | fplFileEntryType |
An enumeration of file entry types (File, Directory, etc.) | |
typedef struct fplFileHandle | fplFileHandle |
The filehandle structure. | |
typedef enum fplFilePermissionFlags | fplFilePermissionFlags |
An enumeration of file permission flags. | |
typedef enum fplFilePermissionMasks | fplFilePermissionMasks |
An enumeration of file permission types. | |
typedef union fplFilePermissions | fplFilePermissions |
A union containing the file permissions (UMask) | |
typedef enum fplFilePositionMode | fplFilePositionMode |
An enumeration of file position modes (Beginning, Current, End) | |
typedef uint64_t | fplFileTimeStamp |
The elapsed seconds since the UNIX epoch (1970-01-01 00:00:00) | |
typedef struct fplFileTimeStamps | fplFileTimeStamps |
A structure containing filestamps for creation/access/modify date. | |
typedef struct fplGamepadButton | fplGamepadButton |
A structure containing properties for a gamepad button (IsDown, etc.) | |
typedef enum fplGamepadButtonType | fplGamepadButtonType |
An enumeration of gamepad buttons. | |
typedef struct fplGamepadEvent | fplGamepadEvent |
A structure containing gamepad event data (Type, Device, State, etc.) | |
typedef enum fplGamepadEventType | fplGamepadEventType |
An enumeration of gamepad event types (Connected, Disconnected, StateChanged, etc.) | |
typedef struct fplGamepadState | fplGamepadState |
A structure containing the entire gamepad state. | |
typedef struct fplGamepadStates | fplGamepadStates |
A struct containing the full state for all gamepad devices. | |
typedef struct fplGraphicsApiSettings | fplGraphicsApiSettings |
A union that contains graphics api settings. | |
typedef struct fplImageSource | fplImageSource |
A structure containing data for working with a image source. | |
typedef enum fplImageType | fplImageType |
An enumeration of image types. | |
typedef enum fplInitFlags | fplInitFlags |
An enumeration of initialization flags. | |
typedef struct fplInputSettings | fplInputSettings |
A structure containing input settings. | |
typedef union fplInternalConditionVariable | fplInternalConditionVariable |
A union containing the internal condition variable for any platform. | |
typedef union fplInternalDynamicLibraryHandle | fplInternalDynamicLibraryHandle |
A union containing the library handle for any platform. | |
typedef union fplInternalFileEntryHandle | fplInternalFileEntryHandle |
A union containing the internal filehandle for any platform. | |
typedef union fplInternalFileHandle | fplInternalFileHandle |
A union containing the internal filehandle for any platform. | |
typedef struct fplInternalFileRootInfo | fplInternalFileRootInfo |
A structure containing the internal root file informations. | |
typedef union fplInternalMutexHandle | fplInternalMutexHandle |
A union containing the internal mutex handle for any platform. | |
typedef union fplInternalSemaphoreHandle | fplInternalSemaphoreHandle |
A union containing the internal semaphore handle for any platform. | |
typedef union fplInternalSignalHandle | fplInternalSignalHandle |
A union containing the internal signal handle for any platform. | |
typedef union fplInternalThreadHandle | fplInternalThreadHandle |
A union containing the thread handle for any platform. | |
typedef enum fplKey | fplKey |
An enumeration of mapped keys (Based on MS Virtual-Key-Codes, mostly directly mapped from ASCII) | |
typedef struct fplKeyboardEvent | fplKeyboardEvent |
A structure containing keyboard event data (Type, Keycode, Mapped key, etc.) | |
typedef enum fplKeyboardEventType | fplKeyboardEventType |
An enumeration of keyboard event types. | |
typedef enum fplKeyboardModifierFlags | fplKeyboardModifierFlags |
An enumeration of keyboard modifier flags. | |
typedef struct fplKeyboardState | fplKeyboardState |
A struct containing the full keyboard state. | |
typedef enum fplLocaleFormat | fplLocaleFormat |
A enumeration of locale formats. | |
typedef enum fplLogLevel | fplLogLevel |
An enumeration of log levels. | |
typedef struct fplLogSettings | fplLogSettings |
A structure containing log settings. | |
typedef struct fplLogWriter | fplLogWriter |
A structure containing log writer settings. | |
typedef struct fplLogWriterConsole | fplLogWriterConsole |
A structure containing console logging properties. | |
typedef struct fplLogWriterCustom | fplLogWriterCustom |
A structure containing properties custom logging properties. | |
typedef enum fplLogWriterFlags | fplLogWriterFlags |
An enumeration of log writer flags. | |
typedef enum fplMemoryAllocationMode | fplMemoryAllocationMode |
A enumeration of dynamic memory allocation modes. | |
typedef struct fplMemoryAllocationSettings | fplMemoryAllocationSettings |
A structure for setting up memory allocation usage. | |
typedef struct fplMemoryBlock | fplMemoryBlock |
Defines a memory block. | |
typedef struct fplMemoryInfos | fplMemoryInfos |
A structure that contains informations about current memory usage. | |
typedef struct fplMemorySettings | fplMemorySettings |
A structure for setting up memory settings for dynamic and temporary allocations. | |
typedef uint64_t | fplMilliseconds |
A type definition for milliseconds / 64-bit. | |
typedef enum fplMouseButtonType | fplMouseButtonType |
An enumeration of mouse button types (Left, Right, ...) | |
typedef struct fplMouseEvent | fplMouseEvent |
A structure containing mouse event data (Type, Button, Position, etc.) | |
typedef enum fplMouseEventType | fplMouseEventType |
An enumeration of mouse event types (Move, ButtonDown, ...) | |
typedef struct fplMouseState | fplMouseState |
A struct containing the full mouse state. | |
typedef struct fplMutexHandle | fplMutexHandle |
The mutex handle structure. | |
typedef enum fplOpenGLCompabilityFlags | fplOpenGLCompabilityFlags |
An enumeration of OpenGL compability flags. | |
typedef struct fplOpenGLSettings | fplOpenGLSettings |
A structure that contains OpenGL video settings. | |
typedef struct fplOSVersionInfos | fplOSVersionInfos |
A structure that contains the version information for the operating system. | |
typedef enum fplPlatformResultType | fplPlatformResultType |
An enumeration of platform result types. | |
typedef enum fplPlatformType | fplPlatformType |
An enumeration of platform types. | |
typedef double | fplSeconds |
A type definition for seconds / 64-bit. | |
typedef struct fplSemaphoreHandle | fplSemaphoreHandle |
The semaphore handle structure. | |
typedef struct fplSettings | fplSettings |
A structure containing settings, such as window, video, etc. | |
typedef struct fplSignalHandle | fplSignalHandle |
The signal handle structure. | |
typedef enum fplSignalValue | fplSignalValue |
An enumeration of signal values. | |
typedef union fplSpecificAudioSettings | fplSpecificAudioSettings |
A union containing backend specific audio settings. | |
typedef struct fplThreadHandle | fplThreadHandle |
Forward declared thread handle. | |
typedef struct fplThreadParameters | fplThreadParameters |
Contains creation parameters for fplThreadCreateWithParameters() | |
typedef enum fplThreadPriority | fplThreadPriority |
Defines all possible thread priorities. | |
typedef uint32_t | fplThreadState |
A type definition for mapping fplThreadState into a 32-bit integer. | |
typedef enum fplThreadStates | fplThreadStates |
An enumeration of thread states. | |
typedef uint32_t | fplTimeoutValue |
A type definition for a timeout value in milliseconds. | |
typedef union fplTimestamp | fplTimestamp |
A structure storing a timestamp, used for delta measurements only. | |
typedef struct fplVersionInfo | fplVersionInfo |
A structure that contains version informations. | |
typedef char | fplVersionNumberPart[4+1] |
A type definition for mapping a part of a version number. | |
typedef struct fplVideoBackBuffer | fplVideoBackBuffer |
A structure containing video backbuffer properties. | |
typedef enum fplVideoBackendType | fplVideoBackendType |
An enumeration of video backend types. | |
typedef struct fplVideoRect | fplVideoRect |
A structure defining a video rectangles position and size. | |
typedef union fplVideoRequirements | fplVideoRequirements |
Stores the video requirements for the desired video backend. | |
typedef struct fplVideoRequirementsVulkan | fplVideoRequirementsVulkan |
Stores the requirements for the Vulkan video backend. | |
typedef struct fplVideoSettings | fplVideoSettings |
A structure that contains video settings such as backend, v-sync, API-settings, etc. | |
typedef struct fplVideoSurface | fplVideoSurface |
Stores the surface properties for the active video backend. | |
typedef struct fplVideoSurfaceOpenGL | fplVideoSurfaceOpenGL |
Stores the surface properties for the OpenGL video backend. | |
typedef struct fplVideoSurfaceVulkan | fplVideoSurfaceVulkan |
Stores the surface properties for the Vulkan video backend. | |
typedef union fplVideoWindow | fplVideoWindow |
Stores the video window handles. | |
typedef struct fplVulkanSettings | fplVulkanSettings |
A structure that contains Vulkan video settings. | |
typedef void() | fplVulkanValidationLayerCallback(void *userData, const char *message, const uint32_t messageSeverity, const uint32_t messageType, const void *debugUtilsMessengerCallbackData) |
The debug callback called when the validation layer writes something. | |
typedef enum fplVulkanValidationLayerMode | fplVulkanValidationLayerMode |
The validation layer modes for Vulkan. | |
typedef enum fplVulkanValidationSeverity | fplVulkanValidationSeverity |
The validation layer logging severity for Vulkan. | |
typedef struct fplWindowCallbacks | fplWindowCallbacks |
A structure containing the window callbacks. | |
typedef struct fplWindowDropFiles | fplWindowDropFiles |
A structure containing number and dropped files informations. | |
typedef struct fplWindowEvent | fplWindowEvent |
A structure containing window event data (Size, Position, etc.) | |
typedef enum fplWindowEventType | fplWindowEventType |
An enumeration of window event types (Resized, PositionChanged, etc.) | |
typedef struct fplWindowPosition | fplWindowPosition |
A structure containing the position of a window. | |
typedef struct fplWindowSettings | fplWindowSettings |
A structure containing window settings, such as size, title etc. | |
typedef struct fplWindowSize | fplWindowSize |
A structure containing the size of a window. | |
typedef enum fplWindowState | fplWindowState |
An enumeration containg the states of a window. | |
typedef enum fplWindowVisibilityState | fplWindowVisibilityState |
An enumeration containing the visibility state of a window. | |
Functions | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplAudioDefaultFields) | |
fplAudioDefaultFields operator overloads for C++ | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplFileAttributeFlags) | |
FileAttributeFlags operator overloads for C++. | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplFilePermissionFlags) | |
fplFilePermissionFlags operator overloads for C++ | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplFilePermissionMasks) | |
fplFilePermissionMasks operator overloads for C++ | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplInitFlags) | |
InitFlags operator overloads for C++. | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplKeyboardModifierFlags) | |
fplKeyboardModifierFlags operator overloads for C++ | |
FPL_ENUM_AS_FLAGS_OPERATORS (fplLogWriterFlags) | |
Log writer flags enumeration operators. | |
fpl_common_api void * | fplAtomicAddAndFetchPtr (volatile void **dest, const intptr_t addend) |
Adds the addend to destination pointer atomically and returns the result after the addition. | |
fpl_platform_api int32_t | fplAtomicAddAndFetchS32 (volatile int32_t *dest, const int32_t addend) |
Adds the addend to destination 32-bit signed integer atomically and returns the result after the addition. | |
fpl_platform_api int64_t | fplAtomicAddAndFetchS64 (volatile int64_t *dest, const int64_t addend) |
Adds the addend to destination 64-bit signed integer atomically and returns the result after the addition. | |
fpl_common_api size_t | fplAtomicAddAndFetchSize (volatile size_t *dest, const size_t addend) |
Adds the addend to destination size atomically and returns the result after the addition. | |
fpl_platform_api uint32_t | fplAtomicAddAndFetchU32 (volatile uint32_t *dest, const uint32_t addend) |
Adds the addend to destination 32-bit unsigned integer atomically and returns the result after the addition. | |
fpl_platform_api uint64_t | fplAtomicAddAndFetchU64 (volatile uint64_t *dest, const uint64_t addend) |
Adds the addend to destination 64-bit unsigned integer atomically and returns the result after the addition. | |
fpl_common_api void * | fplAtomicCompareAndSwapPtr (volatile void **dest, const void *comparand, const void *exchange) |
Compares a pointer with a comparand and swaps it when comparand matches the destination. | |
fpl_platform_api int32_t | fplAtomicCompareAndSwapS32 (volatile int32_t *dest, const int32_t comparand, const int32_t exchange) |
Compares a 32-bit signed integer with a comparand and swaps it when comparand matches the destination. | |
fpl_platform_api int64_t | fplAtomicCompareAndSwapS64 (volatile int64_t *dest, const int64_t comparand, const int64_t exchange) |
Compares a 64-bit signed integer with a comparand and swaps it when comparand matches the destination. | |
fpl_common_api size_t | fplAtomicCompareAndSwapSize (volatile size_t *dest, const size_t comparand, const size_t exchange) |
Compares a size with a comparand and swaps it when comparand matches the destination. | |
fpl_platform_api uint32_t | fplAtomicCompareAndSwapU32 (volatile uint32_t *dest, const uint32_t comparand, const uint32_t exchange) |
Compares a 32-bit unsigned integer with a comparand and swaps it when comparand matches the destination. | |
fpl_platform_api uint64_t | fplAtomicCompareAndSwapU64 (volatile uint64_t *dest, const uint64_t comparand, const uint64_t exchange) |
Compares a 64-bit unsigned integer with a comparand and swaps it when comparand matches the destination. | |
fpl_common_api void * | fplAtomicExchangePtr (volatile void **target, const void *value) |
Replaces a pointer with the given value atomically. | |
fpl_platform_api int32_t | fplAtomicExchangeS32 (volatile int32_t *target, const int32_t value) |
Replaces a 32-bit signed integer with the given value atomically. | |
fpl_platform_api int64_t | fplAtomicExchangeS64 (volatile int64_t *target, const int64_t value) |
Replaces a 64-bit signed integer with the given value atomically. | |
fpl_common_api size_t | fplAtomicExchangeSize (volatile size_t *target, const size_t value) |
Replaces a size with the given value atomically. | |
fpl_platform_api uint32_t | fplAtomicExchangeU32 (volatile uint32_t *target, const uint32_t value) |
Replaces a 32-bit unsigned integer with the given value atomically. | |
fpl_platform_api uint64_t | fplAtomicExchangeU64 (volatile uint64_t *target, const uint64_t value) |
Replaces a 64-bit unsigned integer with the given value atomically. | |
fpl_common_api void * | fplAtomicFetchAndAddPtr (volatile void **dest, const intptr_t addend) |
Adds a addend to the pointer atomically and returns the initial value before the add. | |
fpl_platform_api int32_t | fplAtomicFetchAndAddS32 (volatile int32_t *value, const int32_t addend) |
Adds a 32-bit signed integer to the value by the given addend atomically. | |
fpl_platform_api int64_t | fplAtomicFetchAndAddS64 (volatile int64_t *value, const int64_t addend) |
Adds a 64-bit signed integer to the value by the given addend atomically. | |
fpl_common_api size_t | fplAtomicFetchAndAddSize (volatile size_t *dest, const size_t addend) |
Adds a size to the value by the given addend atomically. | |
fpl_platform_api uint32_t | fplAtomicFetchAndAddU32 (volatile uint32_t *value, const uint32_t addend) |
Adds a 32-bit unsigned integer to the value by the given addend atomically. | |
fpl_platform_api uint64_t | fplAtomicFetchAndAddU64 (volatile uint64_t *value, const uint64_t addend) |
Adds a 64-bit unsigned integer to the value by the given addend atomically. | |
fpl_common_api void * | fplAtomicIncrementPtr (volatile void **dest) |
Increments/Advances the given pointer by one atomically. | |
fpl_platform_api int32_t | fplAtomicIncrementS32 (volatile int32_t *dest) |
Increments the given 32-bit signed integer by one atomically. | |
fpl_platform_api int64_t | fplAtomicIncrementS64 (volatile int64_t *dest) |
Increments the given 64-bit signed integer by one atomically. | |
fpl_common_api size_t | fplAtomicIncrementSize (volatile size_t *dest) |
Increments the given size by one atomically. | |
fpl_platform_api uint32_t | fplAtomicIncrementU32 (volatile uint32_t *dest) |
Increments the given 32-bit unsigned integer by one atomically. | |
fpl_platform_api uint64_t | fplAtomicIncrementU64 (volatile uint64_t *dest) |
Increments the given 64-bit unsigned integer by one atomically. | |
fpl_common_api bool | fplAtomicIsCompareAndSwapPtr (volatile void **dest, const void *comparand, const void *exchange) |
Compares a pointer with a comparand and swaps it when comparand matches the destination and returns a bool indicating the result. | |
fpl_platform_api bool | fplAtomicIsCompareAndSwapS32 (volatile int32_t *dest, const int32_t comparand, const int32_t exchange) |
Compares a 32-bit signed integer with a comparand and swaps it when comparand matches the destination and returns a bool indicating the result. | |
fpl_platform_api bool | fplAtomicIsCompareAndSwapS64 (volatile int64_t *dest, const int64_t comparand, const int64_t exchange) |
Compares a 64-bit signed integer with a comparand and swaps it when comparand matches the destination and returns a bool indicating the result. | |
fpl_common_api bool | fplAtomicIsCompareAndSwapSize (volatile size_t *dest, const size_t comparand, const size_t exchange) |
Compares a size with a comparand and swaps it when comparand matches the destination and returns a bool indicating the result. | |
fpl_platform_api bool | fplAtomicIsCompareAndSwapU32 (volatile uint32_t *dest, const uint32_t comparand, const uint32_t exchange) |
Compares a 32-bit unsigned integer with a comparand and swaps it when comparand matches the destination and returns a bool indicating the result. | |
fpl_platform_api bool | fplAtomicIsCompareAndSwapU64 (volatile uint64_t *dest, const uint64_t comparand, const uint64_t exchange) |
Compares a 64-bit unsigned integer with a comparand and swaps it when comparand matches the destination and returns a bool indicating the result. | |
fpl_common_api void * | fplAtomicLoadPtr (volatile void **source) |
Loads the pointer value atomically and returns the value. | |
fpl_platform_api int32_t | fplAtomicLoadS32 (volatile int32_t *source) |
Loads the 32-bit signed value atomically and returns the value. | |
fpl_platform_api int64_t | fplAtomicLoadS64 (volatile int64_t *source) |
Loads the 64-bit signed value atomically and returns the value. | |
fpl_common_api size_t | fplAtomicLoadSize (volatile size_t *source) |
Loads the size value atomically and returns the value. | |
fpl_platform_api uint32_t | fplAtomicLoadU32 (volatile uint32_t *source) |
Loads the 32-bit unsigned value atomically and returns the value. | |
fpl_platform_api uint64_t | fplAtomicLoadU64 (volatile uint64_t *source) |
Loads the 64-bit unsigned value atomically and returns the value. | |
fpl_platform_api void | fplAtomicReadFence () |
Inserts a memory read fence/barrier. | |
fpl_platform_api void | fplAtomicReadWriteFence () |
Inserts a memory read and write fence/barrier. | |
fpl_common_api void | fplAtomicStorePtr (volatile void **dest, const void *value) |
Overwrites the pointer value atomically. | |
fpl_platform_api void | fplAtomicStoreS32 (volatile int32_t *dest, const int32_t value) |
Overwrites the 32-bit signed value atomically. | |
fpl_platform_api void | fplAtomicStoreS64 (volatile int64_t *dest, const int64_t value) |
Overwrites the 64-bit signed value atomically. | |
fpl_common_api void | fplAtomicStoreSize (volatile size_t *dest, const size_t value) |
Overwrites the size value atomically. | |
fpl_platform_api void | fplAtomicStoreU32 (volatile uint32_t *dest, const uint32_t value) |
Overwrites the 32-bit unsigned value atomically. | |
fpl_platform_api void | fplAtomicStoreU64 (volatile uint64_t *dest, const uint64_t value) |
Overwrites the 64-bit unsigned value atomically. | |
fpl_platform_api void | fplAtomicWriteFence () |
Inserts a memory write fence/barrier. | |
fpl_common_api size_t | fplChangeFileExtension (const char *filePath, const char *newFileExtension, char *destPath, const size_t maxDestLen) |
Changes the file extension on the given source path and writes the result into a destination buffer. | |
fpl_common_api void | fplClearErrors () |
Clears all the current errors in the platform. | |
fpl_platform_api bool | fplConditionBroadcast (fplConditionVariable *condition) |
Wakes up all threads that wait on the given condition. | |
fpl_platform_api void | fplConditionDestroy (fplConditionVariable *condition) |
Releases the given condition and clears the structure to zero. | |
fpl_platform_api bool | fplConditionInit (fplConditionVariable *condition) |
Initialize s the given condition. | |
fpl_platform_api bool | fplConditionSignal (fplConditionVariable *condition) |
Wakes up one thread that waits on the given condition. | |
fpl_platform_api bool | fplConditionWait (fplConditionVariable *condition, fplMutexHandle *mutex, const fplTimeoutValue timeout) |
Sleeps on the given condition and releases the mutex when done. | |
fpl_platform_api void | fplConsoleError (const char *text) |
Writes the given text to the standard error console buffer. | |
fpl_common_api void | fplConsoleFormatError (const char *format,...) |
Writes the given formatted text to the standard error console buffer. | |
fpl_common_api void | fplConsoleFormatOut (const char *format,...) |
Writes the given formatted text to the standard output console buffer. | |
fpl_platform_api void | fplConsoleOut (const char *text) |
Writes the given text to the standard output console buffer. | |
fpl_platform_api char | fplConsoleWaitForCharInput () |
Wait for a character to be typed in the console input and return it. | |
fpl_common_api void | fplConvertAudioTargetFormatToDeviceFormat (const fplAudioTargetFormat *inFormat, fplAudioDeviceFormat *outFormat) |
Converts a fplAudioTargetFormat into a fplAudioDeviceFormat structure. | |
fpl_common_api char * | fplCopyString (const char *source, char *dest, const size_t maxDestLen) |
Copies the given source string into a destination string. | |
fpl_common_api char * | fplCopyStringLen (const char *source, const size_t sourceLen, char *dest, const size_t maxDestLen) |
Copies the given source string with a constrained length into a destination string. | |
fpl_platform_api fplCPUArchType | fplCPUGetArchitecture () |
Gets the processor architecture type. | |
fpl_common_api const char * | fplCPUGetArchName (const fplCPUArchType type) |
Gets the string representation of the given architecture type. | |
fpl_common_api bool | fplCPUGetCapabilities (fplCPUCapabilities *outCaps) |
Gets the capabilities of the processor. | |
fpl_platform_api size_t | fplCPUGetCoreCount () |
Retrieves the total number of processor cores. | |
fpl_common_api size_t | fplCPUGetName (char *destBuffer, const size_t maxDestBufferLen) |
Retrieves the name of the processor. | |
fpl_common_api void | fplCPUID (fplCPUIDLeaf *outLeaf, const uint32_t functionId) |
Queries the x86 CPUID leaf register (EAX, EBX, ECX, EDX) for the given function id. | |
fpl_common_api uint64_t | fplCPURDTSC () |
Reads the current time stamp counter (RDTSC) | |
fpl_common_api uint64_t | fplCPUXCR0 () |
Gets the x86 extended control register for index zero. | |
fpl_inline fplColor32 | fplCreateColorRGBA (const uint8_t r, const uint8_t g, const uint8_t b, const uint8_t a) |
Creates a fplColor32 from the specified r, g, b, a components. | |
fpl_inline fplVideoRect | fplCreateVideoRectFromLTRB (int32_t left, int32_t top, int32_t right, int32_t bottom) |
Makes a video rectangle from a LTRB rectangle. | |
fpl_common_api void | fplDebugFormatOut (const char *format,...) |
Writes the given formatted text into the debugger output stream. | |
fpl_platform_api void | fplDebugOut (const char *text) |
Writes the given text into the debugger output stream. | |
fpl_platform_api bool | fplDirectoriesCreate (const char *path) |
Creates all the directories in the given path. | |
fpl_platform_api bool | fplDirectoryExists (const char *path) |
Checks if the given directory exists and returns a boolean indicating its existence. | |
fpl_platform_api bool | fplDirectoryListBegin (const char *path, const char *filter, fplFileEntry *entry) |
Iterates through files/directories in the given directory. | |
fpl_platform_api void | fplDirectoryListEnd (fplFileEntry *entry) |
Releases opened resources from iterating through files/directories. | |
fpl_platform_api bool | fplDirectoryListNext (fplFileEntry *entry) |
Gets the next file entry from iterating through files/directories. | |
fpl_platform_api bool | fplDirectoryRemove (const char *path) |
Deletes the given empty directory without confirmation and returns true when the deletion was successful. | |
fpl_platform_api bool | fplDisableWindowFullscreen () |
Switches the window back to window mode. | |
fpl_platform_api bool | fplDynamicLibraryLoad (const char *libraryFilePath, fplDynamicLibraryHandle *outHandle) |
Loads a dynamic library and returns if the load was successful or not. | |
fpl_platform_api void | fplDynamicLibraryUnload (fplDynamicLibraryHandle *handle) |
Unloads the loaded library and resets the handle to zero. | |
fpl_platform_api bool | fplEnableWindowFullscreen () |
Enables fullscreen mode on the nearest display. | |
fpl_common_api char * | fplEnforcePathSeparator (char *path) |
Ensures that the given string always ends with a path separator. | |
fpl_common_api char * | fplEnforcePathSeparatorLen (char *path, size_t maxPathLen) |
Ensures that the given string always ends with a path separator with length constrained. | |
fpl_common_api const char * | fplExtractFileExtension (const char *sourcePath) |
Extracts the file extension from the given source path. | |
fpl_common_api const char * | fplExtractFileName (const char *sourcePath) |
Extracts the file name including the file extension from the given source path. | |
fpl_common_api size_t | fplExtractFilePath (const char *sourcePath, char *destPath, const size_t maxDestLen) |
Extracts the directory path from the given file path. | |
fpl_platform_api void | fplFileClose (fplFileHandle *fileHandle) |
Closes the given file and releases the underlying resources and clears the handle to zero. | |
fpl_platform_api bool | fplFileCopy (const char *sourceFilePath, const char *targetFilePath, const bool overwrite) |
Copies the given source file to the target path and returns true when the copy was successful. | |
fpl_platform_api bool | fplFileCreateBinary (const char *filePath, fplFileHandle *outHandle) |
Create a binary file for writing to the given string path and returns the handle of it. | |
fpl_platform_api bool | fplFileDelete (const char *filePath) |
Deletes the given file without confirmation and returns true when the deletion was successful. | |
fpl_platform_api bool | fplFileExists (const char *filePath) |
Checks if the file exists and returns a boolean indicating the existence. | |
fpl_platform_api bool | fplFileFlush (fplFileHandle *fileHandle) |
Flushes the buffers of the given file and causes all buffered data to be written to a file. | |
fpl_common_api size_t | fplFileGetPosition (const fplFileHandle *fileHandle) |
Gets the current file position in bytes. | |
fpl_platform_api uint32_t | fplFileGetPosition32 (const fplFileHandle *fileHandle) |
Gets the current file position in bytes. | |
fpl_platform_api uint64_t | fplFileGetPosition64 (const fplFileHandle *fileHandle) |
Gets the current file position in bytes. | |
fpl_common_api size_t | fplFileGetSizeFromHandle (const fplFileHandle *fileHandle) |
Gets the file size in bytes for an opened file. | |
fpl_platform_api uint32_t | fplFileGetSizeFromHandle32 (const fplFileHandle *fileHandle) |
Gets the file size in bytes for an opened file. | |
fpl_platform_api uint64_t | fplFileGetSizeFromHandle64 (const fplFileHandle *fileHandle) |
Gets the file size in bytes for an opened file. | |
fpl_platform_api size_t | fplFileGetSizeFromPath (const char *filePath) |
Gets the file size in bytes for the given file. | |
fpl_platform_api uint32_t | fplFileGetSizeFromPath32 (const char *filePath) |
Gets the file size in bytes for the given file. | |
fpl_platform_api uint64_t | fplFileGetSizeFromPath64 (const char *filePath) |
Gets the file size in bytes for the given file. | |
fpl_platform_api bool | fplFileGetTimestampsFromHandle (const fplFileHandle *fileHandle, fplFileTimeStamps *outStamps) |
Gets the timestamps for an opened file. | |
fpl_platform_api bool | fplFileGetTimestampsFromPath (const char *filePath, fplFileTimeStamps *outStamps) |
Gets the timestamps for the given file. | |
fpl_platform_api bool | fplFileMove (const char *sourceFilePath, const char *targetFilePath) |
Movies the given source file to the target file and returns true when the move was successful. | |
fpl_platform_api bool | fplFileOpenBinary (const char *filePath, fplFileHandle *outHandle) |
Opens a binary file for reading from a string path and returns the handle of it. | |
fpl_platform_api size_t | fplFileReadBlock (const fplFileHandle *fileHandle, const size_t sizeToRead, void *targetBuffer, const size_t maxTargetBufferSize) |
Reads a block from the given file and returns the number of bytes read. | |
fpl_platform_api uint32_t | fplFileReadBlock32 (const fplFileHandle *fileHandle, const uint32_t sizeToRead, void *targetBuffer, const uint32_t maxTargetBufferSize) |
Reads a block from the given file and returns the number of bytes read. | |
fpl_platform_api uint64_t | fplFileReadBlock64 (const fplFileHandle *fileHandle, const uint64_t sizeToRead, void *targetBuffer, const uint64_t maxTargetBufferSize) |
Reads a block from the given file and returns the number of bytes read. | |
fpl_common_api size_t | fplFileSetPosition (const fplFileHandle *fileHandle, const intptr_t position, const fplFilePositionMode mode) |
Sets the current file position by the given position, depending on the mode it's absolute or relative. | |
fpl_platform_api uint32_t | fplFileSetPosition32 (const fplFileHandle *fileHandle, const int32_t position, const fplFilePositionMode mode) |
Sets the current file position by the given position, depending on the mode it's absolute or relative. | |
fpl_platform_api uint64_t | fplFileSetPosition64 (const fplFileHandle *fileHandle, const int64_t position, const fplFilePositionMode mode) |
Sets the current file position by the given position, depending on the mode it's absolute or relative. | |
fpl_platform_api bool | fplFileSetTimestamps (const char *filePath, const fplFileTimeStamps *timeStamps) |
Sets the timestamps for the given file. | |
fpl_common_api size_t | fplFileWriteBlock (const fplFileHandle *fileHandle, void *sourceBuffer, const size_t sourceSize) |
Writes a block to the given file and returns the number of written bytes. | |
fpl_platform_api uint32_t | fplFileWriteBlock32 (const fplFileHandle *fileHandle, void *sourceBuffer, const uint32_t sourceSize) |
Writes a block to the given file and returns the number of written bytes. | |
fpl_platform_api uint64_t | fplFileWriteBlock64 (const fplFileHandle *fileHandle, void *sourceBuffer, const uint64_t sourceSize) |
Writes a block to the given file and returns the number of written bytes. | |
fpl_common_api const char * | fplGetAudioBackendName (fplAudioBackendType backendType) |
Gets the string that represents the given audio backend type. | |
fpl_common_api fplAudioBackendType | fplGetAudioBackendType () |
Gets the current audio backend type. | |
fpl_common_api uint32_t | fplGetAudioBufferSizeInBytes (const fplAudioFormatType format, const uint32_t channelCount, const uint32_t frameCount) |
Computes the total number of bytes for the buffer and the given parameters. | |
fpl_common_api uint32_t | fplGetAudioBufferSizeInFrames (uint32_t sampleRate, uint32_t bufferSizeInMilliSeconds) |
Computes the total number of frames for given sample rate and buffer size. | |
fpl_common_api uint32_t | fplGetAudioBufferSizeInMilliseconds (uint32_t sampleRate, uint32_t frameCount) |
Computes the duration in milliseconds for the given sample rate and frame count. | |
fpl_common_api uint32_t | fplGetAudioDevices (fplAudioDeviceInfo *devices, uint32_t maxDeviceCount) |
Retrieves all playback audio devices. | |
fpl_common_api const char * | fplGetAudioFormatName (const fplAudioFormatType format) |
Gets the string that represents the given audio format type. | |
fpl_common_api uint32_t | fplGetAudioFrameSizeInBytes (const fplAudioFormatType format, const uint32_t channelCount) |
Computes the number of bytes required for one interleaved audio frame - containing all the channels. | |
fpl_common_api bool | fplGetAudioHardwareFormat (fplAudioDeviceFormat *outFormat) |
Retrieves the native format for the current audio device. | |
fpl_common_api uint32_t | fplGetAudioSampleSizeInBytes (const fplAudioFormatType format) |
Computes the number of bytes required to write one sample with one channel. | |
fpl_platform_api bool | fplGetClipboardText (char *dest, const uint32_t maxDestLen) |
Retrieves the current clipboard text. | |
fpl_common_api const fplSettings * | fplGetCurrentSettings () |
Gets the current settings. | |
fpl_platform_api uint32_t | fplGetCurrentThreadId () |
Gets the thread id for the current thread. | |
fpl_platform_api size_t | fplGetDisplayCount () |
Gets the number of active displays. | |
fpl_platform_api bool | fplGetDisplayFromPosition (const int32_t x, const int32_t y, fplDisplayInfo *outInfo) |
Finds the display from a cursor position and retrieves the information for it. | |
fpl_platform_api size_t | fplGetDisplayModes (const char *id, fplDisplayMode *outModes, const size_t maxDisplayModeCount) |
Gets the information about the available display modes for the given display id. | |
fpl_platform_api size_t | fplGetDisplays (fplDisplayInfo *outDisplays, const size_t maxDisplayCount) |
Gets informations about all active displays. | |
fpl_platform_api void * | fplGetDynamicLibraryProc (const fplDynamicLibraryHandle *handle, const char *name) |
Returns the dynamic library procedure address for the given procedure name. | |
fpl_common_api const char * | fplGetErrorByIndex (const size_t index) |
Gets the last error string from the given index. | |
fpl_common_api size_t | fplGetErrorCount () |
Gets the count of total last errors. | |
fpl_platform_api size_t | fplGetExecutableFilePath (char *destPath, const size_t maxDestLen) |
Gets the full path to this executable, including the executable file name. | |
fpl_platform_api size_t | fplGetHomePath (char *destPath, const size_t maxDestLen) |
Gets the full path to your home directory. | |
fpl_platform_api size_t | fplGetInputLocale (const fplLocaleFormat targetFormat, char *buffer, const size_t maxBufferLen) |
Gets the input locale in the given target format. | |
fpl_common_api const char * | fplGetLastError () |
Gets the last internal error string. | |
fpl_common_api const fplLogSettings * | fplGetLogSettings () |
Gets the current log settings. | |
fpl_common_api const fplThreadHandle * | fplGetMainThread () |
Gets the thread handle for the main thread. | |
fpl_common_api fplLogLevel | fplGetMaxLogLevel () |
Gets the current maximum allowed log level. | |
fpl_common_api const char * | fplGetPlatformName (const fplPlatformType type) |
Gets the string representation of the given platform type. | |
fpl_common_api fplPlatformResultType | fplGetPlatformResult () |
Gets the result type of the platform initialization. | |
fpl_common_api fplPlatformType | fplGetPlatformType () |
Gets the type of the platform. | |
fpl_platform_api bool | fplGetPrimaryDisplay (fplDisplayInfo *outInfo) |
Gets information about the primary display. | |
fpl_common_api size_t | fplGetStringLength (const char *str) |
Counts the number of characters without including the zero terminator. | |
fpl_platform_api size_t | fplGetSystemLocale (const fplLocaleFormat targetFormat, char *buffer, const size_t maxBufferLen) |
Gets the system locale in the given target format. | |
fpl_platform_api fplThreadPriority | fplGetThreadPriority (fplThreadHandle *thread) |
Retrieves the current thread priority from the OS from the given fplThreadHandle . | |
fpl_common_api fplThreadState | fplGetThreadState (fplThreadHandle *thread) |
Gets the current thread state for the given thread. | |
fpl_platform_api size_t | fplGetUserLocale (const fplLocaleFormat targetFormat, char *buffer, const size_t maxBufferLen) |
Gets the user locale in the given target format. | |
fpl_common_api fplVideoBackBuffer * | fplGetVideoBackBuffer () |
Retrieves the pointer to the current video backbuffer. | |
fpl_common_api const char * | fplGetVideoBackendName (fplVideoBackendType backendType) |
Gets a string that represents the given video backend. | |
fpl_common_api fplVideoBackendType | fplGetVideoBackendType () |
Gets the current video backend. | |
fpl_common_api const void * | fplGetVideoProcedure (const char *procName) |
Gets the procedure by the specified name from the active video backend. | |
fpl_common_api bool | fplGetVideoRequirements (const fplVideoBackendType backendType, fplVideoRequirements *requirements) |
Gets the video requirements for the specified video backend. | |
fpl_common_api const fplVideoSurface * | fplGetVideoSurface () |
Gets the current fplVideoSurface that stores all handles used for the active video backend. | |
fpl_platform_api bool | fplGetWindowDisplay (fplDisplayInfo *outInfo) |
Gets information about the display for the FPL window. | |
fpl_platform_api bool | fplGetWindowPosition (fplWindowPosition *outPos) |
Retrieves the absolute window position. | |
fpl_platform_api bool | fplGetWindowSize (fplWindowSize *outSize) |
Retrieves the inner window size. | |
fpl_platform_api fplWindowState | fplGetWindowState () |
Gets the current window state. | |
fpl_common_api char * | fplGetWindowTitle (char *outTitle, const size_t maxOutTitleLength) |
Retrieves the window title and writes it into the output string. | |
fpl_common_api bool | fplIsPlatformInitialized () |
Returns true when the platform is initialized, or false if not. | |
fpl_common_api bool | fplIsStringEqual (const char *a, const char *b) |
Compares two strings and returns a boolean indicating the equality. | |
fpl_common_api bool | fplIsStringEqualLen (const char *a, const size_t aLen, const char *b, const size_t bLen) |
Compares two strings with constrained lengths and returns a boolean indicating the equality. | |
fpl_common_api bool | fplIsStringMatchWildcard (const char *source, const char *wildcard) |
Matches the given string by the given wildcard and returns a boolean indicating the match. | |
fpl_platform_api bool | fplIsWindowDecorated () |
Gets the window decorated state as boolean. | |
fpl_platform_api bool | fplIsWindowFloating () |
Gets the window floating state as boolean. | |
fpl_platform_api bool | fplIsWindowFullscreen () |
Gets the window fullscreen state as boolean. | |
fpl_platform_api bool | fplIsWindowResizable () |
Gets the window resizable state as boolean. | |
fpl_platform_api bool | fplIsWindowRunning () |
Gets the window running state as a boolean. | |
fpl_common_api fplSettings | fplMakeDefaultSettings () |
Creates a full settings structure containing default values. | |
fpl_common_api void * | fplMemoryAlignedAllocate (const size_t size, const size_t alignment) |
Allocates aligned memory from the operating system by the given alignment. | |
fpl_common_api void | fplMemoryAlignedFree (void *ptr) |
Releases the aligned memory allocated from the operating system. | |
fpl_platform_api void * | fplMemoryAllocate (const size_t size) |
Allocates memory from the operating system by the given size. | |
fpl_common_api void | fplMemoryClear (void *mem, const size_t size) |
Clears the given memory by the given size to zero. | |
fpl_common_api void | fplMemoryCopy (const void *sourceMem, const size_t sourceSize, void *targetMem) |
Copies the given source memory with its length to the target memory. | |
fpl_platform_api void | fplMemoryFree (void *ptr) |
Releases the memory allocated from the operating system. | |
fpl_platform_api bool | fplMemoryGetInfos (fplMemoryInfos *outInfos) |
Retrieves the current system memory usage. | |
fpl_common_api void | fplMemorySet (void *mem, const uint8_t value, const size_t size) |
Sets the given memory by the given size to the given value. | |
fpl_platform_api fplMilliseconds | fplMillisecondsQuery () |
Gets the current system clock in milliseconds, since some fixed starting point (OS start, System start, etc), used for time delta measurements only. | |
fpl_platform_api void | fplMutexDestroy (fplMutexHandle *mutex) |
Releases the given mutex and clears the structure to zero. | |
fpl_platform_api bool | fplMutexInit (fplMutexHandle *mutex) |
Initializes the given mutex. | |
fpl_platform_api bool | fplMutexLock (fplMutexHandle *mutex) |
Locks the given mutex and blocks any other threads. | |
fpl_platform_api bool | fplMutexTryLock (fplMutexHandle *mutex) |
Tries to lock the given mutex without blocking other threads. | |
fpl_platform_api bool | fplMutexUnlock (fplMutexHandle *mutex) |
Unlocks the given mutex. | |
fpl_platform_api bool | fplOSGetVersionInfos (fplOSVersionInfos *outInfos) |
Gets version informations from the operating system. | |
fpl_common_api size_t | fplPathCombine (char *destPath, const size_t maxDestPathLen, const size_t pathCount,...) |
Combines all given paths by the platforms path separator for a fixed number of arguments. | |
fpl_common_api const char * | fplPlatformGetResultName (const fplPlatformResultType type) |
Gets the string representation of a platform result type. | |
fpl_common_api bool | fplPlatformInit (const fplInitFlags initFlags, const fplSettings *initSettings) |
Initializes the platform layer. | |
fpl_common_api void | fplPlatformRelease () |
Releases the resources allocated by the platform layer. | |
fpl_common_api fplAudioResultType | fplPlayAudio () |
Start playing asynchronous audio. | |
fpl_platform_api bool | fplPollEvent (fplEvent *ev) |
Polls the next event from the internal event queue or from the OS, handles them, and removes it from the queue. | |
fpl_platform_api void | fplPollEvents () |
Polls all the events from the OS and clears the internal event queue. | |
fpl_platform_api bool | fplPollGamepadStates (fplGamepadStates *outStates) |
Polls the current gamepad states and writes it out into the output structure. | |
fpl_platform_api bool | fplPollKeyboardState (fplKeyboardState *outState) |
Polls the current keyboard state and writes it out into the output structure. | |
fpl_platform_api bool | fplPollMouseState (fplMouseState *outState) |
Polls the current mouse state and writes it out into the output structure. | |
fpl_platform_api bool | fplQueryCursorPosition (int32_t *outX, int32_t *outY) |
Queries the cursor position in screen coordinates, relative to the root screen. | |
fpl_common_api bool | fplResizeVideoBackBuffer (const uint32_t width, const uint32_t height) |
Resizes the current video backbuffer. | |
fpl_common_api size_t | fplS32ToString (const int32_t value, char *buffer, const size_t maxBufferLen) |
Converts the given 32-bit integer value into a string. | |
fpl_platform_api void | fplSemaphoreDestroy (fplSemaphoreHandle *semaphore) |
Releases the internal semaphore resources. | |
fpl_platform_api bool | fplSemaphoreInit (fplSemaphoreHandle *semaphore, const uint32_t initialValue) |
Initializes the semaphore with the given initial value. | |
fpl_platform_api bool | fplSemaphoreRelease (fplSemaphoreHandle *semaphore) |
Increments the semaphore value by one. | |
fpl_platform_api bool | fplSemaphoreTryWait (fplSemaphoreHandle *semaphore) |
Tries to wait for the semaphore until it gets signaled or return immediately. | |
fpl_platform_api int32_t | fplSemaphoreValue (fplSemaphoreHandle *semaphore) |
Gets the current semaphore value. | |
fpl_platform_api bool | fplSemaphoreWait (fplSemaphoreHandle *semaphore, const fplTimeoutValue timeout) |
Waits for the semaphore until it gets signaled or the timeout has been reached. | |
fpl_platform_api size_t | fplSessionGetUsername (char *nameBuffer, const size_t maxNameBufferLen) |
Gets the username of the current logged-in user from the session. | |
fpl_common_api bool | fplSetAudioClientReadCallback (fpl_audio_client_read_callback *newCallback, void *userData) |
Overwrites the audio client read callback. | |
fpl_platform_api bool | fplSetClipboardText (const char *text) |
Overwrites the current clipboard text with the given one. | |
fpl_common_api void | fplSetDefaultAudioSettings (fplAudioSettings *audio) |
Resets the given audio settings to default settings (S16 PCM, 48 kHz, 2 Channels) | |
fpl_common_api void | fplSetDefaultConsoleSettings (fplConsoleSettings *console) |
Resets the given console settings container to default settings. | |
fpl_common_api void | fplSetDefaultInputSettings (fplInputSettings *input) |
Resets the given input settings container to default values. | |
fpl_common_api void | fplSetDefaultSettings (fplSettings *settings) |
Resets the given settings container to default values for window, video, audio, etc. | |
fpl_common_api void | fplSetDefaultVideoSettings (fplVideoSettings *video) |
Resets the given video settings to default values. | |
fpl_common_api void | fplSetDefaultWindowSettings (fplWindowSettings *window) |
Resets the given window settings container to default settings. | |
fpl_common_api void | fplSetLogSettings (const fplLogSettings *params) |
Overwrites the current log settings. | |
fpl_common_api void | fplSetMaxLogLevel (const fplLogLevel maxLevel) |
Changes the current maximum log level to the given value. | |
fpl_platform_api bool | fplSetThreadPriority (fplThreadHandle *thread, const fplThreadPriority newPriority) |
Changes the thread priority to the given one, for the given fplThreadHandle . | |
fpl_platform_api void | fplSetWindowCursorEnabled (const bool value) |
Enables or disables the window cursor. | |
fpl_platform_api void | fplSetWindowDecorated (const bool value) |
Enables or disables the window decoration (Titlebar, Border, etc.). | |
fpl_platform_api void | fplSetWindowFloating (const bool value) |
Enables or disables the window floating (Top-most) | |
fpl_platform_api bool | fplSetWindowFullscreenRect (const bool value, const int32_t x, const int32_t y, const int32_t width, const int32_t height) |
Enables or disables fullscreen mode based on the given rectangle. | |
fpl_platform_api bool | fplSetWindowFullscreenSize (const bool value, const uint32_t fullscreenWidth, const uint32_t fullscreenHeight, const uint32_t refreshRate) |
Enables or disables fullscreen mode based on the given size and the current display. | |
fpl_common_api void | fplSetWindowInputEvents (const bool enabled) |
Enables or Disables the input events for the window entirely. | |
fpl_platform_api void | fplSetWindowPosition (const int32_t left, const int32_t top) |
Changes the window absolute position to the given coordinates. | |
fpl_platform_api void | fplSetWindowResizeable (const bool value) |
Enables or disables the ability to resize the window. | |
fpl_platform_api void | fplSetWindowSize (const uint32_t width, const uint32_t height) |
Resizes the window to fit the inner size based on the given size. | |
fpl_platform_api bool | fplSetWindowState (const fplWindowState newState) |
Changes the current window state. | |
fpl_platform_api void | fplSetWindowTitle (const char *title) |
Changes the window title to the given string. | |
fpl_platform_api void | fplSignalDestroy (fplSignalHandle *signal) |
Releases the given signal and clears the structure to zero. | |
fpl_platform_api bool | fplSignalInit (fplSignalHandle *signal, const fplSignalValue initialValue) |
Initializes the given signal. | |
fpl_platform_api bool | fplSignalReset (fplSignalHandle *signal) |
Resets the signal. | |
fpl_platform_api bool | fplSignalSet (fplSignalHandle *signal) |
Sets the signal and wakes up the given signal. | |
fpl_platform_api bool | fplSignalWaitForAll (fplSignalHandle **signals, const size_t count, const size_t stride, const fplTimeoutValue timeout) |
Waits until all the given signals are waked up. | |
fpl_platform_api bool | fplSignalWaitForAny (fplSignalHandle **signals, const size_t count, const size_t stride, const fplTimeoutValue timeout) |
Waits until any of the given signals wakes up or the timeout has been reached. | |
fpl_platform_api bool | fplSignalWaitForOne (fplSignalHandle *signal, const fplTimeoutValue timeout) |
Waits until the given signal is waked up. | |
fpl_common_api fplAudioResultType | fplStopAudio () |
Stop playing asynchronous audio. | |
fpl_common_api char * | fplStringAppend (const char *appended, char *buffer, size_t maxBufferLen) |
Appends the source string to the given buffer. | |
fpl_common_api char * | fplStringAppendLen (const char *appended, const size_t appendedLen, char *buffer, size_t maxBufferLen) |
Appends the source string to the given buffer constrained by length. | |
fpl_common_api size_t | fplStringFormat (char *destBuffer, const size_t maxDestBufferLen, const char *format,...) |
Fills out the given destination string buffer with a formatted string, using the format specifier and variable arguments. | |
fpl_common_api size_t | fplStringFormatArgs (char *destBuffer, const size_t maxDestBufferLen, const char *format, va_list argList) |
Fills out the given destination string buffer with a formatted string, using the format specifier and the arguments list. | |
fpl_common_api int32_t | fplStringToS32 (const char *str) |
Converts the given string into a 32-bit integer. | |
fpl_common_api int32_t | fplStringToS32Len (const char *str, const size_t len) |
Converts the given string into a 32-bit integer constrained by string length. | |
fpl_platform_api fplThreadHandle * | fplThreadCreate (fpl_run_thread_callback *runFunc, void *data) |
Creates and starts a thread and returns the handle to it. | |
fpl_platform_api fplThreadHandle * | fplThreadCreateWithParameters (fplThreadParameters *parameters) |
Creates and starts a thread from the specified fplThreadParameters and returns the handle to it. | |
fpl_platform_api void | fplThreadSleep (const uint32_t milliseconds) |
Let the current thread sleep for the given amount of milliseconds. | |
fpl_platform_api bool | fplThreadTerminate (fplThreadHandle *thread) |
Forces the given thread to stop and release all underlying resources. | |
fpl_platform_api bool | fplThreadWaitForAll (fplThreadHandle **threads, const size_t count, const size_t stride, const fplTimeoutValue timeout) |
Wait until all given threads are done running or the given timeout has been reached. | |
fpl_platform_api bool | fplThreadWaitForAny (fplThreadHandle **threads, const size_t count, const size_t stride, const fplTimeoutValue timeout) |
Wait until one of the given threads is done running or the given timeout has been reached. | |
fpl_platform_api bool | fplThreadWaitForOne (fplThreadHandle *thread, const fplTimeoutValue timeout) |
Wait until the given thread is done running or the given timeout has been reached. | |
fpl_platform_api bool | fplThreadYield () |
Let the current thread yield execution to another thread that is ready to run on this core. | |
fpl_platform_api fplSeconds | fplTimestampElapsed (const fplTimestamp start, const fplTimestamp finish) |
Gets the delta value from two fplTimestamp values in seconds. | |
fpl_platform_api fplTimestamp | fplTimestampQuery () |
Gets the current fplTimestamp with most precision, used for time delta measurements only. | |
fpl_platform_api size_t | fplUTF8StringToWideString (const char *utf8Source, const size_t utf8SourceLen, wchar_t *wideDest, const size_t maxWideDestLen) |
Converts the given 8-bit UTF-8 source ANSI string with length in a 16-bit wide string. | |
fpl_common_api void | fplVideoFlip () |
Forces the window to be redrawn or to swap the back/front buffer. | |
fpl_platform_api size_t | fplWideStringToUTF8String (const wchar_t *wideSource, const size_t wideSourceLen, char *utf8Dest, const size_t maxUtf8DestLen) |
Converts the given 16-bit source wide string with length in an 8-bit UTF-8 ANSI string. | |
fpl_platform_api void | fplWindowShutdown () |
Closes the window and stops the event loop. | |
fpl_platform_api bool | fplWindowUpdate () |
Clears the internal event queue and updates input devices if needed. | |
fpl_common_api size_t | GetAvailableThreadCount () |
Gets the number of available threads. | |
fpl_common_api size_t | GetUsedThreadCount () |
Gets the number of used/active threads. | |
Final Platform Layer (FPL) - A C99 Single-Header-File Platform Abstraction Library.
Definition in file final_platform_layer.h.
#define FPL_APPTYPE_WINDOW |
Detected window application type.
Definition at line 1894 of file final_platform_layer.h.
#define FPL_CPU_32BIT |
32-bit CPU detected
Definition at line 1600 of file final_platform_layer.h.
#define FPL_ENUM_AS_FLAGS_OPERATORS | ( | type | ) |
Macro for optionally adding enum operators for bitwise and/or/xor.
Definition at line 2397 of file final_platform_layer.h.
#define FPL_FUNCTION_NAME |
Function name macro.
Definition at line 1960 of file final_platform_layer.h.
#define FPL_IS_IDE |
Is any IDE active, such as Intellisense or any jetbrains IDE?
Definition at line 1956 of file final_platform_layer.h.
#define fpl_null |
Null.
Definition at line 2259 of file final_platform_layer.h.
#define fplAlignAs | ( | N | ) |
Structure alignment in bytes.
Definition at line 1711 of file final_platform_layer.h.
#define fplAsm |
A assembler compiler instruction (asm)
Definition at line 1681 of file final_platform_layer.h.
#define fplHasInclude | ( | inc | ) |
Test for include existence.
Definition at line 2020 of file final_platform_layer.h.
#define fplMinAlignment |
Minimum structure alignment.
Definition at line 1696 of file final_platform_layer.h.
typedef int32_t fpl_b32 |
32-bit boolean
Definition at line 2262 of file final_platform_layer.h.