tidy up, submodule RGFW

This commit is contained in:
mtgmonkey
2025-12-16 01:12:02 +01:00
parent 5a701a3632
commit d36bbad5a8
10 changed files with 24 additions and 28172 deletions

View File

@@ -1,87 +0,0 @@
{-# LANGUAGE CApiFFI #-}
module Lib where
import Data.Bits (shiftL, (.|.))
import Foreign
import Foreign.C.String
import Foreign.C.Types
--------------------------------------------------------------------------------
-- Haskell-ier abstractions
--------------------------------------------------------------------------------
data WindowFlags
= WindowNoBorder
| WindowNoResize
| WindowAllowDND
| WindowHideMouse
| WindowFullscreen
| WindowTransparent
| WindowCenter
| WindowRawMouse
| WindowScaleToMonitor
| WindowHide
| WindowMaximize
| WindowCenterCursor
| WindowFloating
| WindowFocusOnShow
| WindowMinimize
| WindowFocus
| WindowOpenGL
| WindowEGL
| WindowedFullscreen
mkWindowFlags :: [WindowFlags] -> RGFWwindowFlags
mkWindowFlags [] = 0
mkWindowFlags (flag:flags) =
let
shift =
case flag of
WindowNoBorder -> 0
WindowNoResize -> 1
WindowAllowDND -> 2
WindowHideMouse -> 3
WindowFullscreen -> 4
WindowTransparent -> 5
WindowCenter -> 6
WindowRawMouse -> 7
WindowScaleToMonitor -> 8
WindowHide -> 9
WindowMaximize -> 10
WindowCenterCursor -> 11
WindowFloating -> 12
WindowFocusOnShow -> 13
WindowMinimize -> 14
WindowFocus -> 15
WindowOpenGL -> 17
WindowEGL -> 18
_ -> 19 -- TODO fix this silent error, implement windowedFullscreen
in
(shiftL 1 shift) .|. (mkWindowFlags flags)
--------------------------------------------------------------------------------
-- directly from RFGW.h
--------------------------------------------------------------------------------
-- RGFWindow
data RGFWwindow
-- ptr
type RGFWwindowPtr = Ptr RGFWwindow
-- flags to create
type RGFWwindowFlags = Word32
type RGFWbool = CUInt
foreign import capi "RGFW_HS.h RGFW_createWindow" rgfwCreateWindow
:: Ptr CChar
-> CInt
-> CInt
-> CInt
-> CInt
-> RGFWwindowFlags
-> IO RGFWwindowPtr
foreign import capi "RGFW_HS.h RGFW_window_shouldClose" rgfwWindowShouldClose
:: RGFWwindowPtr
-> IO RGFWbool

14034
lib/RGFW.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +0,0 @@
#ifndef RGFW_HS // avoid repeated imports
#define RGFW_HS
// TODO add actual include logic
#define RGFW_IMPLEMENTATION
#define RGFW_DEBUG
#define RGFW_OPENGL
#define Time X11Time // fixes namespace clash with GHC when building with Nix
#include "RGFW.h"
#undef Time
#endif