dx9d3d 0.1.0.2 → 0.1.1
raw patch · 4 files changed
+57/−16 lines, 4 filesdep ~dx9base
Dependency ranges changed: dx9base
Files
- DirectX9/D3D/Constant.hsc +8/−8
- DirectX9/D3D/Utility/Init.hs +4/−5
- README.txt +40/−0
- dx9d3d.cabal +5/−3
DirectX9/D3D/Constant.hsc view
@@ -35,17 +35,17 @@ type D3DCREATE = DWORD #{enum D3DCREATE, + , d3DCREATE_ADAPTERGROUP_DEVICE = D3DCREATE_ADAPTERGROUP_DEVICE + , d3DCREATE_DISABLE_DRIVER_MANAGEMENT = D3DCREATE_DISABLE_DRIVER_MANAGEMENT + , d3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX , d3DCREATE_FPU_PRESERVE = D3DCREATE_FPU_PRESERVE , d3DCREATE_HARDWARE_VERTEXPROCESSING = D3DCREATE_HARDWARE_VERTEXPROCESSING , d3DCREATE_MIXED_VERTEXPROCESSING = D3DCREATE_MIXED_VERTEXPROCESSING , d3DCREATE_MULTITHREADED = D3DCREATE_MULTITHREADED + , d3DCREATE_NOWINDOWCHANGES = D3DCREATE_NOWINDOWCHANGES , d3DCREATE_PUREDEVICE = D3DCREATE_PUREDEVICE , d3DCREATE_SOFTWARE_VERTEXPROCESSING = D3DCREATE_SOFTWARE_VERTEXPROCESSING } - -- , d3DCREATE_ADAPTERGROUP_DEVICE = D3DCREATE_ADAPTERGROUP_DEVICE - -- , d3DCREATE_DISABLE_DRIVER_MANAGEMENT = D3DCREATE_DISABLE_DRIVER_MANAGEMENT - -- , d3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX - -- , d3DCREATE_NOWINDOWCHANGES = D3DCREATE_NOWINDOWCHANGES type D3DCURSORCAPS_COLOR = DWORD #{enum D3DCURSORCAPS_COLOR, @@ -110,12 +110,12 @@ type D3DLOCK = DWORD #{enum D3DLOCK, , d3DLOCK_DISCARD = D3DLOCK_DISCARD + , d3DLOCK_DONOTWAIT = D3DLOCK_DONOTWAIT , d3DLOCK_NO_DIRTY_UPDATE = D3DLOCK_NO_DIRTY_UPDATE , d3DLOCK_NOOVERWRITE = D3DLOCK_NOOVERWRITE , d3DLOCK_NOSYSLOCKD3DLOCK_READONLY = D3DLOCK_NOSYSLOCK , d3DLOCK_READONLY = D3DLOCK_READONLY } - -- , d3DLOCK_DONOTWAIT = D3DLOCK_DONOTWAIT type D3DPMISCCAPS = DWORD #{enum D3DPMISCCAPS, @@ -141,15 +141,15 @@ type D3DPRESENT = DWORD #{enum D3DPRESENT, + , d3DPRESENT_DONOTWAIT = D3DPRESENT_DONOTWAIT , d3DPRESENT_INTERVAL_DEFAULT = D3DPRESENT_INTERVAL_DEFAULT , d3DPRESENT_INTERVAL_ONE = D3DPRESENT_INTERVAL_ONE , d3DPRESENT_INTERVAL_TWO = D3DPRESENT_INTERVAL_TWO , d3DPRESENT_INTERVAL_THREE = D3DPRESENT_INTERVAL_THREE , d3DPRESENT_INTERVAL_FOUR = D3DPRESENT_INTERVAL_FOUR , d3DPRESENT_INTERVAL_IMMEDIATE = D3DPRESENT_INTERVAL_IMMEDIATE + , d3DPRESENT_LINEAR_CONTENT = D3DPRESENT_LINEAR_CONTENT } - -- , d3DPRESENT_DONOTWAIT = D3DPRESENT_DONOTWAIT - -- , d3DPRESENT_LINEAR_CONTENT = D3DPRESENT_LINEAR_CONTENT type D3DPRESENTFLAG = DWORD #{enum D3DPRESENTFLAG, @@ -249,8 +249,8 @@ , d3DUSAGE_QUERY_SRGBREAD = D3DUSAGE_QUERY_SRGBREAD , d3DUSAGE_QUERY_SRGBWRITE = D3DUSAGE_QUERY_SRGBWRITE , d3DUSAGE_QUERY_VERTEXTEXTURE = D3DUSAGE_QUERY_VERTEXTEXTURE + , d3DUSAGE_QUERY_WRAPANDMIP = D3DUSAGE_QUERY_WRAPANDMIP } - -- , d3DUSAGE_QUERY_WRAPANDMIP = D3DUSAGE_QUERY_WRAPANDMIP type D3DVERTEXTEXTURESAMPLER = DWORD
DirectX9/D3D/Utility/Init.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE ScopedTypeVariables #-} module DirectX9.D3D.Utility.Init where import Graphics.Win32 ( WindowClosure, HWND, mkClassName, loadIcon @@ -12,8 +11,8 @@ , wM_QUIT, wM_KEYDOWN, vK_ESCAPE ) import System.Win32.DLL ( getModuleHandle ) import Control.Concurrent ( newEmptyMVar, putMVar, takeMVar, tryTakeMVar, forkIO ) -import Control.Exception ( catch, IOException ) -import Prelude hiding ( catch ) +-- import Control.Exception ( catch ) +-- import Prelude hiding ( catch ) makeWindow :: Int -> Int -> String -> WindowClosure -> IO HWND makeWindow width height name proc = do @@ -54,7 +53,7 @@ quit <- newEmptyMVar forkIO $ catch (render signal quit 1) - (\(e::IOException) -> do + (\e -> do print e putMVar quit ()) loop signal quit @@ -74,7 +73,7 @@ translateMessage msg dispatchMessage msg return more) - (\(_::IOException) -> return False) + (const $ return False) if more then loop signal quit else do
+ README.txt view
@@ -0,0 +1,40 @@+# Installing + + You need need recentish ghc (6.4.x should work). + DirectX should be installed somewhere, examples assume %DXSDK% + + First, you need to prepare mingw-usable import libraries for + directx DLLS. This is easiest with mingw tool reimp, available on + mingw-utilities on mingw site ( www.mingw.org ) Installing + mingw and msys are beyond this simple readme. + + Cabal setup scripts assume that those libraries are situated in + %DXSDK%\Mingw. If you have mingw and msys installed, doing + something like: + + cd $DXSDK + mkdir Mingw + cd Mingw + cp ../Lib/x86/*.lib . + rm DxErr*.lib + ls | xargs -n 1 reimp + + This will turn all but DxErr libs into mingw-compatible import + libraries by running reimp on each .lib + DxErr-libraries are not needed and take quite a lot of time to go + through reimp. + + The bindings are split into multiple packages. To compile and install + packages, you need to compile Setup.hs + + ghc --make Setup.hs -o setup + + After you have setup.exe, you need to enter a package directory and + give cabal commands configure, build and install. + cd base + ..\setup configure --dx-sdk=%DXSDK% + ..\setup build + ..\setup install + Recommended order to build packages is base, d3d, d3dx so that dependencies + are met. +
dx9d3d.cabal view
@@ -1,5 +1,5 @@ name: dx9d3d -version: 0.1.0.2 +version: 0.1.1 author: Esa Ilari Vuokko maintainer: none license: BSD3 @@ -11,14 +11,16 @@ This package doesn't have any sample code. But mokehehe wrote sample code below blog article. <http://mokehehe.blogspot.com/2009/04/using-directx-from-haskell.html> . - This version lacks D3DX support and some functionality to build with MinGW's library. + This version requires DirectX SDK that is specified in --extra-include-dirs and --extra-lib-dirs PATH. + See the README file for more information. stability: alpha build-type: Simple -build-depends: base >= 3 && < 5, Win32, dx9base < 0.1.1 +build-depends: base >= 3 && < 5, Win32, dx9base >= 0.1.1 extra-source-files: gen/Parser.hs, gen/extract-dx.hs, gen/extract-d3dx.hs gen/d3d_h.h, gen/d3dx_h.h, gen/fix_decl_x.h gen/d3d_c.h, gen/d3dx_c.h, gen/fix_decl.h + README.txt exposed-modules: DirectX9.D3D DirectX9.D3D.Base