From 567863b2398b6832f686b258709396572af0e980 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 2 Oct 2024 21:22:19 -0400 Subject: First commit! --- sdl3/bindings/gpu.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 sdl3/bindings/gpu.scm (limited to 'sdl3/bindings/gpu.scm') diff --git a/sdl3/bindings/gpu.scm b/sdl3/bindings/gpu.scm new file mode 100644 index 0000000..6de7ef4 --- /dev/null +++ b/sdl3/bindings/gpu.scm @@ -0,0 +1,62 @@ +;;; guile-sdl3 -- Scheme bindings for SDL3 +;;; Copyright © 2024 David Thompson +;;; +;;; Licensed under the Apache License, Version 2.0 (the "License"); +;;; you may not use this file except in compliance with the License. +;;; You may obtain a copy of the License at +;;; +;;; http://www.apache.org/licenses/LICENSE-2.0 +;;; +;;; Unless required by applicable law or agreed to in writing, software +;;; distributed under the License is distributed on an "AS IS" BASIS, +;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;;; See the License for the specific language governing permissions and +;;; limitations under the License. + +;;; Commentary: +;; +;; Low-level bindings for SDL_gpu.h. +;; +;;; Code: + +(define-module (sdl3 bindings gpu) + #:use-module (sdl3 bindings utils) + #:use-module (system foreign) + #:export (;; SDL_gpu.h + SDL_GPUShaderFormat + SDL_GPU_SHADERFORMAT_INVALID + SDL_GPU_SHADERFORMAT_PRIVATE + SDL_GPU_SHADERFORMAT_SPIRV + SDL_GPU_SHADERFORMAT_DXBC + SDL_GPU_SHADERFORMAT_DXIL + SDL_GPU_SHADERFORMAT_MSL + SDL_GPU_SHADERFORMAT_METALLIB + + gpu-device? + wrap-gpu-device + unwrap-gpu-device + gpu-device-destroyed? + set-gpu-device-destroyed! + + SDL_CreateGPUDevice + SDL_DestroyGPUDevice + SDL_ClaimWindowForGPUDevice)) + +(define SDL_GPUShaderFormat uint32) +(define SDL_GPU_SHADERFORMAT_INVALID 0) +(define SDL_GPU_SHADERFORMAT_PRIVATE 1) +(define SDL_GPU_SHADERFORMAT_SPIRV 2) +(define SDL_GPU_SHADERFORMAT_DXBC 4) +(define SDL_GPU_SHADERFORMAT_DXIL 8) +(define SDL_GPU_SHADERFORMAT_MSL 16) +(define SDL_GPU_SHADERFORMAT_METALLIB 32) + +(define-sdl-pointer-type + gpu-device? wrap-gpu-device unwrap-gpu-device + gpu-device-destroyed? set-gpu-device-destroyed! + (lambda (device port) + (display "#" port))) + +(define-sdl SDL_CreateGPUDevice SDL_GPUShaderFormat bool '* -> '*) +(define-sdl SDL_DestroyGPUDevice '*) +(define-sdl SDL_ClaimWindowForGPUDevice '* '* -> bool) -- cgit v1.2.3