ReleaseNotes:98.0: Difference between revisions

From Spring
Jump to navigationJump to search
Abma (talk | contribs)
No edit summary
Abma (talk | contribs)
mNo edit summary
Line 1: Line 1:




==New features==
=New features=
===Visual profiling and grapher that shows how Spring spends time===
==Major==
===Visual profiling and grapher that shows how Spring spends time====


[[File:Grapher.jpg|thumb|
[[File:Grapher.jpg|thumb|
Line 22: Line 23:




===Buildprocess===
==Buildprocess==
  - fix freetype not found on windows / mingw
  - fix freetype not found on windows / mingw
  ! add check for gcc >=4.6 at configure
  ! add check for gcc >=4.6 at configure
Line 28: Line 29:
  ! SDL2 dependency
  ! SDL2 dependency


===Misc===
==Misc==
  - improve debug draw (alt+[b])
  - improve debug draw (alt+[b])


===Rendering===
==Rendering==
  - `DebugGL` configtag works now (cause of SDL2 switch)
  - `DebugGL` configtag works now (cause of SDL2 switch)


===LuaDefs===
==LuaDefs==
  - the parser now checks the returned tables for NaNs & Infs and prints a warning if it finds some (they are sources of desyncs!)
  - the parser now checks the returned tables for NaNs & Infs and prints a warning if it finds some (they are sources of desyncs!)


===UnitDefs===
==UnitDefs==
  - add new "harvestStorage" unitdef tag, UnitHarvestStorageFull lua callin and Spring.GetUnitHarvestStorage(unitid) callout
  - add new "harvestStorage" unitdef tag, UnitHarvestStorageFull lua callin and Spring.GetUnitHarvestStorage(unitid) callout
   it's for engine assisted starcraft/c&c like feature harvesting (atm only metal is supported)
   it's for engine assisted starcraft/c&c like feature harvesting (atm only metal is supported)
   NOTE: the unload command still needs to be implemented in lua (much less work than the reclaiming one)
   NOTE: the unload command still needs to be implemented in lua (much less work than the reclaiming one)


===Lua===
==Lua==
  - LuaRules & LuaGaia are now splitted into their synced & unsynced parts, and each one got its own luaState
  - LuaRules & LuaGaia are now splitted into their synced & unsynced parts, and each one got its own luaState
   - this way unsynced parts of gadgets now get `synced` callins like 'UnitCreated' etc. w/o SendToUnsynced from their synced part
   - this way unsynced parts of gadgets now get `synced` callins like 'UnitCreated' etc. w/o SendToUnsynced from their synced part
Line 69: Line 70:
  ! fix wrong coords & crash in Spring.RemoveGrass
  ! fix wrong coords & crash in Spring.RemoveGrass


===LUS===
==LUS==
  - SetUnitValue now accepts booleans, too
  - SetUnitValue now accepts booleans, too


===Installer===
==Installer==
  ! disallow to install spring over existing installations / ask for uninstall first
  ! disallow to install spring over existing installations / ask for uninstall first
  - don't associate .sdf with spring.exe any more
  - don't associate .sdf with spring.exe any more

Revision as of 23:02, 18 February 2014


New features

Major

Visual profiling and grapher that shows how Spring spends time=

green are video frames red are simframes blue is swapBuffer (gpu/vsync) pink is lua gc

You see that `Frame Grapher` which displays the last half second and its time slices:


UTF8-Support

spring 96.0 without utf8 support
spring 97.0 with utf8 support



Buildprocess

- fix freetype not found on windows / mingw
! add check for gcc >=4.6 at configure
- optional fontconfig support
! SDL2 dependency

Misc

- improve debug draw (alt+[b])

Rendering

- `DebugGL` configtag works now (cause of SDL2 switch)

LuaDefs

- the parser now checks the returned tables for NaNs & Infs and prints a warning if it finds some (they are sources of desyncs!)

UnitDefs

- add new "harvestStorage" unitdef tag, UnitHarvestStorageFull lua callin and Spring.GetUnitHarvestStorage(unitid) callout
  it's for engine assisted starcraft/c&c like feature harvesting (atm only metal is supported)
  NOTE: the unload command still needs to be implemented in lua (much less work than the reclaiming one)

Lua

- LuaRules & LuaGaia are now splitted into their synced & unsynced parts, and each one got its own luaState
 - this way unsynced parts of gadgets now get `synced` callins like 'UnitCreated' etc. w/o SendToUnsynced from their synced part
 - LuaRules & LuaGaia are now ~equal (except a very minor subset of differences) and get the same callins esp. all AllowXYZ callins
 - LuaUI now has a GotChatMsg too (same as LuaRules always had), it's similar to the now deprecated LuaUI-only ConfigCommand callin, but is called more often
 - fixed a lot bugs in Spring's c-lua code
 - use lua's original math.random() code and only use streflop for it in synced luaStates
 - always make math.randomseed() available (synced & unsynced)
 - in future this will also allow multithreading of the different luaStates
- fix Spring.Restart on windows
! new TextInput(utf8char) callin, needed cause of changed unicode handling in SDL2
- added Spring.SetUnitHarvestStorage(unitid, metal) & Spring.GetUnitHarvestStorage(unitid)
! prevent triggering of ATi driver bugs
 ! gl.LineWidth & gl.PointSize throw an error when called with incorrect argument (<=0)
 ! gl.Scissor & gl.CreateTexture throw an error on incorrect sizes, too
! fix gl.Viewport
- add missing colvol tags to Unit-/FeatureDefs:
 - .collisionVolume.type = {"ellipsoid" | "cylinder" | "box"}
 - .collisionVolume.scale{X|Y|Z}
 - .collisionVolume.offset{X|Y|Z}
 - .collisionVolume.boundingRadius
 - .collisionVolume.defaultToSphere
 - .collisionVolume.defaultToFootPrint
 - .collisionVolume.defaultToPieceTree
- add optional 4th argument to Spring.GetUnitSeperation to calc the distance between the unitsphere surfaces instead of their midpos
! fix wrong coords & crash in Spring.RemoveGrass

LUS

- SetUnitValue now accepts booleans, too

Installer

! disallow to install spring over existing installations / ask for uninstall first
- don't associate .sdf with spring.exe any more