README.Watcom
author Sunny Sachanandani <sunnysachanandani@gmail.com>
Fri, 09 Jul 2010 21:36:41 +0530
changeset 4590 1ad70fb49fcb
parent 3568 8c72321542f6
permissions -rw-r--r--
Fix so many things that there is little place in this column to list them all but the result is that blending modes just work now for drawing primitives.

Fixes involved:
1. Fix handling of alpha channel when SDL_BLENDMODE_NONE is set.
2. Make xrendercolor use floating-point values for color channels and then convert to 16 bit ints.
3. Fix handling of visuals in SDL_x11modes.c so that a 32 bit ARGB visual is used.
4. Fix the background pixel value in SDL_x11window.c so that the window background has an alpha value of 0xFF and not 0.
slouken@1773
     1
slouken@3568
     2
Using SDL 1.3 under Windows with the OpenWatcom compiler
slouken@3568
     3
slouken@1773
     4
====================================================
slouken@1773
     5
slouken@1773
     6
Prerequisites
slouken@1773
     7
-------------
slouken@1773
     8
slouken@3568
     9
I have done the port under Windows XP Professional with SP2 installed.
slouken@3568
    10
Windows 2000 should also be working. I'm not so sure about ancient Windows NT,
slouken@1773
    11
since only DirectX 3 is available there. Building should be possible,
slouken@1773
    12
but running the compiled applications will probalbly fail with
slouken@1773
    13
SDL_VIDEODRIVER=directx. The windib driver should work, though.
slouken@1773
    14
slouken@1773
    15
To compile and use the SDL with Open Watcom you will need the following:
slouken@3568
    16
- Open Watcom compiler. I used version 1.8. The environment variables
slouken@1773
    17
  PATH, WATCOM and INCLUDE need to be set appropriately - please consult
slouken@1773
    18
  the OpenWatcom documentation and instructions given during the
slouken@1773
    19
  installation of the compiler.
slouken@1773
    20
  My setup looks like this in owvars.bat:
slouken@3568
    21
    set WATCOM=C:\dev\ow18
slouken@1773
    22
    set INCLUDE=%WATCOM%\h;%WATCOM%\h\nt
slouken@1773
    23
    set PATH=%PATH%;%WATCOM%\binnt;%WATCOM%\binw
slouken@3568
    24
- A recent DirectX SDK. The library needs D3d9.h so at leat the
slouken@3568
    25
  directx 9 sdk is to be used. I used DirectX 10 SDK from August 2009
slouken@3568
    26
  taken directly from the microsoft site.
slouken@3568
    27
- The SDL 1.3 sources from Subversion
slouken@1773
    28
- The file Watcom-Win32.zip (now available in Subversion)
slouken@1773
    29
slouken@1773
    30
slouken@1773
    31
Building the Library
slouken@1773
    32
--------------------
slouken@1773
    33
slouken@1773
    34
1) In the SDL base directory extract the archive Watcom-Win32.zip. This
slouken@1773
    35
   creates a subdirectory named 'watcom'.
slouken@1773
    36
2) The makefile expects the environment variable DXDIR to be set to the
slouken@3568
    37
   base directory of a DirectX SDK. I have tried the August 2009
slouken@3568
    38
   DirectX SDK from Microsoft
slouken@1773
    39
   You can also edit the makefile directly and hard code your path to
slouken@1773
    40
   the SDK on your system.
slouken@1773
    41
   I have this in my setup:
slouken@3568
    42
     set DXDIR=..\dx10
slouken@1773
    43
3) Enter the watcom directory and run
slouken@1773
    44
     wmake sdl
slouken@1773
    45
4) All tests from the test directory are working and can be built by
slouken@1773
    46
   running
slouken@1773
    47
     wmake tests
slouken@1773
    48
slouken@1773
    49
Notes:
slouken@1773
    50
slouken@1773
    51
 The makefile offers some options to tweak the way the library is built.
slouken@1773
    52
 You have at your disposal the option to build a static (default)
slouken@1773
    53
 library, or a DLL (with tgt=dll). You can also choose whether to build
slouken@1773
    54
 a Release (default) or a Debug version (with build=debug) of the tests
slouken@1773
    55
 and library. Please consult the usage comment at the top of the
slouken@1773
    56
 makefile for usage instructions.
slouken@1773
    57
slouken@1773
    58
 If you specify a test target (i.e. 'wmake tests' for all tests, or
slouken@1773
    59
 selected targets like 'wmake testgl testvidinfo testoverlay2'), the
slouken@1773
    60
 tests are always freshly compiled and linked. This is done to
slouken@1773
    61
 minimise hassle when switching between library versions (static vs.
slouken@1773
    62
 DLL), because they require subtly different options.
slouken@1773
    63
 Also, the test executables are put directly into the test directory,
slouken@1773
    64
 so they can find their data files. The clean target of the makefile
slouken@1773
    65
 removes the test executables and the SDL.dll file from the test
slouken@1773
    66
 directory.
slouken@1773
    67
slouken@1773
    68
 To use the library in your own projects with Open Watcom, you can use
slouken@1773
    69
 the way the tests are built as base of your own build environment.
slouken@1773
    70
slouken@1888
    71
 The library can also be built with the stack calling convention of the
slouken@1888
    72
 compiler (-6s instead of -6r).
slouken@1888
    73
slouken@1773
    74
Test applications
slouken@1773
    75
-----------------
slouken@3568
    76
$FixME: which test works ? which one compiles ?
slouken@1773
    77
slouken@1773
    78
I've tried to make all tests work. The following table gives an overview
slouken@1773
    79
of the current status.
slouken@1773
    80
slouken@1773
    81
 Testname        Status
slouken@1773
    82
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
slouken@1773
    83
checkkeys       +
slouken@1773
    84
graywin         +
slouken@1773
    85
loopwave        +
slouken@1773
    86
testalpha       +
slouken@1773
    87
testbitmap      +
slouken@1773
    88
testdyngl       +
slouken@1773
    89
testerror       +
slouken@1773
    90
testfile        +
slouken@1773
    91
testgamma       +
slouken@1773
    92
testgl          +
slouken@1773
    93
testhread       +
slouken@1773
    94
testiconv       - (all failed)
slouken@1773
    95
testkeys        +
slouken@1773
    96
testlock        +
slouken@1773
    97
testoverlay     + (needs 'set SDL_VIDEODRIVER=directx')
slouken@1773
    98
testoverlay2    + (needs 'set SDL_VIDEODRIVER=directx')
slouken@1773
    99
testpalette     +
slouken@1773
   100
testplatform    +
slouken@1773
   101
testsem         +
slouken@1773
   102
testsprite      +
slouken@1773
   103
testtimer       +
slouken@1773
   104
testver         +
slouken@1773
   105
testvidinfo     +
slouken@1888
   106
testwin         ? (fading doesn't seem right)
slouken@1773
   107
testwm          +
slouken@1773
   108
torturethread   +
slouken@1773
   109
testcdrom       +
slouken@1773
   110
testjoystick    not tested
slouken@1773
   111
threadwin       +
slouken@1888
   112
testcursor      +
slouken@1773
   113
slouken@1773
   114
slouken@1773
   115
TODO
slouken@1773
   116
----
slouken@1773
   117
slouken@1773
   118
There is room for further improvement:
slouken@1773
   119
- Test joystick functionality.
slouken@1773
   120
- Investigate fading issue in 'testwin' test.
slouken@1773
   121
- Fix the UTF-8 support.
slouken@1773
   122
- Adapt the makefile/object file list to support more target systems
slouken@1773
   123
- Use "#pragma aux" syntax for the CPU info functions.
slouken@1773
   124
slouken@1773
   125
slouken@1773
   126
Questions and Comments
slouken@1773
   127
----------------------
slouken@1773
   128
slouken@3568
   129
Please direct any questions or comments to me:
slouken@3568
   130
slouken@3568
   131
        ow_sdl [at] digitalfantasy [dot] it
slouken@3568
   132
slouken@3568
   133
The original porting to the open watcom compiler was made by
slouken@3568
   134
Marc Peter <mailto:macpete@gmx.de>
slouken@1773
   135
slouken@1773
   136
   Happy Coding!
slouken@1773
   137
slouken@3568
   138
   Daniele Forghieri
slouken@3568
   139