home *** CD-ROM | disk | FTP | other *** search
/ DarkBasic Professional / DarkBasicPro.iso / data1.cab / Lang_Files_(English) / VersionHistory / upgrade5.txt < prev   
Encoding:
Text File  |  2004-09-22  |  13.9 KB  |  201 lines

  1. Upgrade 5
  2. =========
  3.  
  4. GENERAL
  5. -------
  6. * New Vertex Shaders have two distinct changes. The usage values for Vertex Input Data is different (0,3,10,5 not 0,3,5,7)
  7. * New Vertex Shader assembly scripts now require the dcl_position/normal/color/texcord specifier to indicate register usage
  8. * Can now load objexts that have no textures or material data (ie from a save mesh command)
  9. * COLOR OBJECT nopw assigns the diffuse compoent to 0xFF so material colour can be fully visible
  10. * Renamed CORE.DLL to DBPROCORE.DLL in order to avoid confusion with other generic DLLs of the same name
  11. * CHANGE MESH no longer slowly leaks vertex buffer allocations
  12. * COPY BITMAP 0,2 (from zero) caused a crash now fixed
  13. * DISPLAY MODES now ignore the refresh rate variations in the checklist for a reasonable display list
  14. * PRINT now scrolls when text hits bottom of screen using 3d-based-display
  15. * COPY BITMAP can no longer copy A to A, and same-bitmap copy regions work again
  16. * SHIFT MATRIX no longer inverts the height each update and no longer copies the wrong tile when wrapping
  17. * RANDOMIZE MATRIX now extends to the very last X and Z edges of the matrix
  18. * Solved issue of 'ugly lines' once and for all with a new SET MATRIX TRIM command which manually controls the UV edge trim
  19. * Matrix no longer crashes when random parameter input of zero used
  20. * Added runtime error if try and read a file that does not exist 
  21. * Increased PRINT and STR$() value precision size to 12
  22. * LOAD IMAGE no longer fails to load images from internal media resources
  23. * SHADOW Volume is now 0.01 greater than the mesh casting it to avoid the zbuffer clash on self-shadowing
  24. * MAKE MATRIX now has built in check for index buffer usage that exceeds 65535 indices (only 16bit index buffer supported)
  25. * Music Playing State will now change when a CD-Audio or Music Score has finished playing
  26. * Activated code to handle full specular control in engine. Default is no specular for backward compatibility
  27. * Dithering removed from image loading, and now reverts to same method as bitmap loading, simple point scaling only
  28. * When ghosting a matrix, the priority of the draw order decreases automatically so object under the matrix can be seen
  29. * MD2 and MD3 can now be adjusted for speed and return correct total animation frame counts
  30. * Fixed MDL and 3DS where some instances can mean the textures and correct model file are not loaded
  31. * EMPTY ARRAY no longer reports an error if array already empty
  32. * VIEW AND PROJECTION matrices from the 3dmaths command set now work on camera zero, even if multiple cameras exist
  33. * Gave in to the demands added in SAVE IMAGE and work with BMP, DDS, DIB and JPG.
  34.  
  35. COMPILER
  36. --------
  37. * Variables can no longer be reserved words
  38. * SET DIR and WRITE STRING no longer crash when a string is passed that has not been assigned data
  39. * FOR NEXT statements no longer allow space between variable and equate symbol to cause a parser error
  40. * DOUBLE INTEGER and DOUBLE FLOAT can now be passed in and out of functions without a parser error
  41. * The very first semi-colon after a PRINT on the first line of a program caused the concat to fail
  42. * ARRAY INSERT AT ELEMEMT no longer corrupts the contents of the array when inserting middle items
  43. * Variables that contain # anywhere but the last character will now produce a compiler error
  44. * Comments using symbol ` can not be placed at the end of a line without a seperator for easier commenting
  45. * BOOLEAN,BYTE,WORD and DWORD comparisons all now work as expected
  46. * Rogue @ symbols are no longer accepted in values or variable names
  47. * Parameters passed into User Functions no longer get parsed as global items thus avoiding data corruption
  48. * Additionally, User Function local variables take full precidence over globals of same name!
  49. * When faced with a float and a double integer math operation, the resulting cast is to floats
  50. * A single speech mark after a DATA statment no longer crashes the compiler
  51. * Using brackets when calling a subroutine no longer causes the compiler to crash
  52. * ARRAY INSERT AT TOP and ELEMENT refined to leave no corruption after extended use
  53. * User Defined Types can now be assign directly from array element to array element as well as immediates
  54. * SELECT statement now works with arrays and arrays using data types
  55. * Arrays declared with an illegal set of brackets no longer crashes the compiler
  56. * Now CONSTANT defines work with or without the equate symbol between name and value
  57. * Negative step value in FOR NEXT loop no longer confuses parser
  58. * INC and DEC now work with Arrays
  59.  
  60. BETA2
  61. -----
  62. * Fixed rather major and important bug that caused crashes when types where used in subs and functions - stack leak!
  63. * UDT Variables (but not arrays and no return UDT passing) can now be passed into functions and managed locally
  64. * SET CAMERA TO FOLLOW now moves the camera based additionally on the TARGET Y parameter of the command
  65. * SET WINDOW LAYOUT icon parameter now toggles between the default icon and a standad application icon
  66. * Low level vertex shader commands now generate stream offsets to provide correct input data to shader
  67. * Changed particles so they do not default to fade to red near the end of their lifecycle
  68. * Particle ghosting can now accept an extra parameter for an alpha effect fade
  69. * Text commands could crash if the characters exceeded 256 in size while being processed, now fixed
  70. * Declarations such as global x as integer = 4 now parse with and without various space-combinations
  71. * When ENDTYPE is the last keyword in a program, program still parses correctly
  72. * Replied with snippet to claim that media cannot be attached to EXES - alas it works in my tests
  73. * CASE now detects for a literal parameter and reports if this is not the case
  74. * Constant declarations do not need any spaces anywhere anymore, ie #CONSTANT lee=42 will work
  75. * MAKE MEHH FROM OBJECT only converted to a 228 FVF. Now converts to the original mesh FVF
  76. * Clone objects that used special effects, and then the source was deleted, the cloned object would crash
  77. * Animation Volume and Speed capped to 0-100 to ensure no strange effects result from misuse
  78. * ALPHA MAPPING now works with objects that do not use textures
  79. * SPECULAR disabled on all BSP formats as this interferres with regular visual effect
  80. * When ENDFUNCTION uses a global variable, it is the global that is used and not a local version of it
  81. * SMOOTHING Commands now have cropping to percentage can only be in the range 0-100
  82. * Internal OBJECT COLLISION command for Polygon Detection (objA=poly,objB=sphere) improved for accuracy
  83. * MAKE OBJECT PLAIN command corrected with 0->1 UV data, and rotated default object 180 degrees for compatibility
  84. * Corrected bug that caused a positive matrix height to create a hole instead of a hill, now resolved
  85. * Default object identity values now allow LIMB data to be extracted the moment a model is loaded (no SYNC)
  86. * 0xffffffff hex, oct and binary are no longer treated as signed literals, and can now represent all values
  87. * Global Strings returned from functions would only pass a reference and cause later crashing, now string duplicated
  88. * Finally aligned Free Flight Camera commands to DBV1 system in both rotation and movement
  89. * Sprite Width and Height now reported adjusted to the scale of the sprite as well as the size
  90.  
  91. BETA3
  92. -----
  93. * LOCAL and GLOBAL declarations for variables and arrays in and out of functions corrected for minor errors
  94. * For backwards compatibility, a DIM without LOCAL or GLOBAL declaration will default to a GLOBAL if global exists
  95. * Sprites once more use the backsave mode 1 to restore the background under the sprite
  96. * TYPE command on its own without a name no longer crashes the compiler
  97. * Angles from a free flight camera are now identical to the same free flight matrix values from an object
  98. * BYTE, WORD and DWORD no longer interfer with the promotion of temporary values to floats when floats are required
  99. * FOR Variable no longer strict against types, and only ensures floats and integers cannot mix together
  100. * An object glued to a parent object which is then deleted will crash the program, now fixed
  101. * Sometimes textures would not be seen where secondary textures such as lightmaps are used, now fixed
  102. * PERFORM CHECKLIST FOR EFFECT ERRORS now takes an optional parameter for reference to effect number, though redundant
  103. * Multiple cameras now use identical initial FOV and ASPECT values no matter what the camera creation order might be
  104. * BSP no longer enforces a total 100% ambient light setting, allowing lights to be used for BSP and other objects
  105. * Variables can no longer share names with instructions and user functions
  106. * Reserved words and instruction names can no longer be used for user function names
  107. * Both left and right operands of a DWORD based comparison are now resolved if the operand is an array
  108. * MD2 and other meshes that use no index data can now produce and cast shadows like regular indexed objects
  109. * Sprite animations when using CREATE ANIMATED SPRITE no longer have stretch distortion from a rogue error correction
  110. * ARRAY INSERT Commands now work in final build, prior versions used maximum speed build that caused memory issues
  111. * SEY SHADING OFF now restores any objects that where associated with the vertex buffer used to hold a shadow mesh
  112. * LOAD EFFECT and SET EFFECT ON now detect whether the file exists before proceeding to load it
  113. * Objects and other meshes that use large vertex data without index buffers can now be rendered even larger now
  114. * INTERSECT OBJECT can now handle meshes that have no index data and which have vertex indexes larger than a WORD
  115. * FTP commands no longer automatically maximise and minimise screen if not in full screen exclusive mode
  116. * Comments can now be used inside a TYPE declaration structure
  117. * OBJECT SIZE now scales with the SCALE OBJECT command
  118. * Attempts to assign or compare a TYPE and a NON-TYPE value will now result in a compiler error
  119. * READ STRING from File Commands would treat a TAB as a carriage return. No longer the case, is now part of string
  120. * SET CAMERA VIEW no longer changes the viewport un-necessarily causing draw problems immediately after the command
  121. * MAKE MATRIX no longer suffers from a limit imposed by the index buffer. Matrixes are now only limited by memory
  122. * DX9 MEMORY LEAK fixed within the Text DLL which was leaking around 55K of DX memory - this can actually make crashes!
  123. * The Exlamation Symbol is used for break points in debug mode (!), which was detected even in comments, now fixed
  124. * Compiler no longer returns incorrect data when the INPUT command is used with arrays, or array style variations
  125.  
  126. NEW COMMANDS
  127. ------------
  128. Please refer to the help system for an explanation of the new commands introduced with Upgrade 5. With the exception of the FX System, the commands we have introduced where considered essential to complete missing functionality within the language.
  129.  
  130. BASIC3D:
  131.  INSTANCE OBJECT
  132.  DISABLE OBJECT ZREAD
  133.  DISABLE OBJECT ZWRITE
  134.  ENABLE OBJECT ZREAD
  135.  ENABLE OBJECT ZWRITE
  136.  SHOW OBJECT BOUNDS
  137.  HIDE OBJECT BOUNDS
  138.  SET OBJECT SMOOTHING
  139.  SET LIMB SMOOTHING
  140.  SET OBJECT AMBIENCE
  141.  SET OBJECT DIFFUSE
  142.  SET OBJECT EMISSIVE
  143.  SET OBJECT SPECULAR POWER
  144.  SET OBJECT SPECULAR
  145.  SET ALPHA MAPPING ON
  146.  SET SHADING OFF
  147.  SET EFFECT ON
  148.  LOAD EFFECT
  149.  DELETE EFFECT
  150.  SET OBJECT EFFECT
  151.  SET LIMB EFFECT
  152.  PERFORM CHECKLIST FOR EFFECT VALUES
  153.  PERFORM CHECKLIST FOR EFFECT ERRORS
  154.  SET EFFECT CONSTANT BOOLEAN
  155.  SET EFFECT CONSTANT INTEGER
  156.  SET EFFECT CONSTANT FLOAT
  157.  SET EFFECT CONSTANT VECTOR
  158.  SET EFFECT CONSTANT MATRIX
  159.  SET EFFECT TECHNIQUE
  160.  SET EFFECT TRANSPOSE
  161.  EFFECT EXIST()
  162.  PICK OBJECT
  163.  PICK SCREEN
  164.  GET PICK VECTOR X
  165.  GET PICK VECTOR Y
  166.  GET PICK VECTOR Z
  167.  GET PICK DISTANCE
  168.  
  169. IMAGE:
  170.  SAVE IMAGE
  171.  
  172. CAMERA:
  173.  SET CAMERA ASPECT
  174.  
  175. MATRIX:
  176.  SET MATRIX PRIORITY
  177.  SET MATRIX TRIM
  178.  
  179. PARTICLES:
  180.  GHOST PARTICLES OFF
  181.  GHOST PARTICLES ON
  182.  
  183. MIGRATION NOTES
  184. ===============
  185.  
  186. SHADERS
  187. -------
  188. Previous versions of DirectX could assemble vertex shaders without the now required DCL_POSITION, etc syntax. These are required to declare the vertex input format for the low level shader. High level shaders do not require this form of syntax as they have other methods of describing the vertex input format. You will also find the values that represent the usage of each vertex component have also been changed. Refer to the DirectX SDK for information on the new values if you wish to continue using the low-level form of vertex shader programming within DBPro. It is for the reason that this process is often difficult to approach that we have introduced something called the FX System. DBPro can now directly load FX files which takes care of such things as FVF format, vertex input format, render states, shader versions, low or high level scripts and generally anything else that might confuse the beginner. It is now as simpleas finding the FX you want and applying it with a single command.
  189.  
  190. SPECULAR
  191. --------
  192. Specular lighting has been enabled from Upgrade 5 onwards, so some loaded models and objects may appear brighter or pure white when viewed. This will happen in situations where the specular component of an object has high specular values. To set the specular to look like pre-U5, use the command SET OBJECT SPECULAR and set the value to zero.
  193.  
  194. OBJECT PLAIN
  195. ------------
  196. A bug involving the UV data of all plains to use -1.0 to 0.0 has been fixed. In addition to the fix, and to keep compatibility the correct plain is now default to a rotation on the Y axis of 180 degrees to it still faces the camera.
  197.  
  198. ALPHA MODES FOR 16/32 BIT
  199. -------------------------
  200. With the increased number of alpha commands, it is important to know the expected results of using alpha commands on 16 and 32 bit display hardware. 16bit display mode uses a one bit alpha component, which means the pixel controlled by the alpha is either visible or not. There is no gradual blending of colours as you see in 32 bit mode, which has eight bits for the alpha component. It is important to regard this limit when supporting 16 bit display modes in your programs.
  201.