packages feed

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