diff options
| author | Amlal <amlal.elmahrouss@icloud.com> | 2025-02-21 08:29:52 +0100 |
|---|---|---|
| committer | Amlal <amlal.elmahrouss@icloud.com> | 2025-02-21 08:29:52 +0100 |
| commit | 1517ad3c9d8ee73086365763edd1f3b4d935074d (patch) | |
| tree | 5da121158e77af795a32f556b0401047cf9718a1 /dev/LibSCI/GPU.h | |
| parent | 00f4fd8e3ae003d458ea0b6ae47b9ba3c9067bcf (diff) | |
Moved FB API to GPU.h Add Format, Message and Filesystem API.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/LibSCI/GPU.h')
| -rw-r--r-- | dev/LibSCI/GPU.h | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/dev/LibSCI/GPU.h b/dev/LibSCI/GPU.h index 52ae6b1d..bbcd1300 100644 --- a/dev/LibSCI/GPU.h +++ b/dev/LibSCI/GPU.h @@ -3,7 +3,7 @@ Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. File: GPU.h -Purpose: GFX System Calls. +Purpose: GPU/FB System Calls. ------------------------------------------- */ @@ -16,41 +16,57 @@ Purpose: GFX System Calls. /// @brief GPU API. /// ------------------------------------------------------------------------------------------ // -struct GPUCmdBuffer; +struct GPUCmd; typedef VoidPtr GPUObject; /// ------------------------------------------------------------------------------------------ // -/// @brief Command buffer structure type. +/// @brief Command structure type. /// ------------------------------------------------------------------------------------------ // -struct GPUCmdBuffer final + +struct GPUCmd { VoidPtr Data{nullptr}; SizeT DataSz{0}; SizeT BufferLayer{0}; - Bool IsGPGPUData{false}; - Bool BufferFirst{false}; + BOOL IsGPGPUData{NO}; - Bool isGPGPUData() + BOOL isGPGPUData() { - return this->isValid() && !this->BufferFirst && this->IsGPGPUData; + return this->isValid() && this->IsGPGPUData; } - Bool isBackBuffer() + BOOL isBackBuffer() { - return !this->BufferFirst; + return this->BufferLayer > 0; } - Bool isValid() + BOOL isValid() { return this->Data && (this->DataSz > 0) && (MmGetHeapFlags(this->Data) != -1); } }; -IMPORT_C GPUObject GPUNewFromDeviceName(_Input const Char* device_name); +IMPORT_C BOOL GPUListDevices(const Char** list, SizeT cnt); + +IMPORT_C GPUObject GPUGetFromDeviceName(_Input const Char* device_name); + +IMPORT_C GPUObject GPUQueryInfo(_Input const GPUObject* device_name, VoidPtr* out, SizeT out_sz); IMPORT_C SInt32 GPUDisposeDevice(GPUObject gpu_handle, Bool cancel_all, Bool flush_all); -IMPORT_C SInt32 GPUSendCmdBufferListWithCnt(GPUCmdBuffer** cmd_list, SizeT cmd_list_cnt); +IMPORT_C SInt32 GPUSendCmdBufferListWithCnt(GPUCmd** cmd_list, SizeT cmd_list_cnt); + +// ------------------------------------------------------------------------------------------ // +// @brief FB API. +// ------------------------------------------------------------------------------------------ // + +IMPORT_C SInt32 FBAcquireBuffer(GPUObject* out, SInt32 width, SInt32 height); + +IMPORT_C SInt32 FBDisposeBuffer(GPUObject* in); + +IMPORT_C SInt32 FBGetColorProfile(GPUObject in); + +IMPORT_C SInt32 FBQueryInfo(GPUObject handle, VoidPtr* info_ptr, SizeT* info_sz); #endif // ifndef SCI_GPU_H |
