summaryrefslogtreecommitdiffhomepage
path: root/dev/LibSCI/GPU.h
diff options
context:
space:
mode:
Diffstat (limited to 'dev/LibSCI/GPU.h')
-rw-r--r--dev/LibSCI/GPU.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/dev/LibSCI/GPU.h b/dev/LibSCI/GPU.h
new file mode 100644
index 00000000..976ad2e5
--- /dev/null
+++ b/dev/LibSCI/GPU.h
@@ -0,0 +1,50 @@
+/* -------------------------------------------
+
+Copyright (C) 2024, Theater Quality Inc, all rights reserved.
+
+File: GPU.h
+Purpose: GFX System Calls.
+
+------------------------------------------- */
+
+#ifndef SCIKIT_GPU_H
+#define SCIKIT_GPU_H
+
+#include <LibSCI.h>
+
+// ------------------------------------------------------------------------------------------ //
+// GPU API.
+// ------------------------------------------------------------------------------------------ //
+
+// ------------------------------------------------------------------------------------------ //
+// @brief Command buffer structure type.
+// ------------------------------------------------------------------------------------------ //
+struct GPU_CMD_BUFFER final
+{
+ SizeT X, Y, Z;
+ VoidPtr FrameData;
+ SizeT FrameDataSz;
+ SizeT BackBufferLayer;
+ Bool IsGPGPUData;
+ Bool BackBufferFirst;
+
+ Bool isGPGPUData()
+ {
+ return !this->BackBufferFirst && this->IsGPGPUData;
+ }
+
+ Bool isValid()
+ {
+ return this->FrameData && this->FrameDataSz > 0;
+ }
+};
+
+typedef VoidPtr GPUObject;
+
+IMPORT_C GPUObject GPUNewFromDeviceName(_Input const Char* device_name);
+
+IMPORT_C SInt32 GPUDisposeDevice(GPUObject gpu_handle, Bool cancel_all, Bool flush_all);
+
+IMPORT_C SInt32 GPUSendCmdBufferListWithCnt(GPU_CMD_BUFFER** cmd_list, SizeT cmd_list_cnt);
+
+#endif // ifndef SCIKIT_GPU_H