;;; 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)