Castle Game Engine: TCastleWindow: simple name (without Base suffix), removed deprecated Window.SceneManager, UTF-16 in WinAPI backend

Two news about our class: The and are now (again) advised to be used through these simple names. There is no more need to use the names with Base suffix, and . They are now just deprecated aliases to the simpler names without the Base suffix. Underneath, this happened because of a change I announced …

Castle Game Engine: TCastleViewport.PositionFromWorld utility, to adjust UI position to something in 3D viewport, or measure 3D size on screen

New method allows to map a viewport (3D) position into user interface (2D) position. This allows to: Place UI element exactly where some 3D thing is. The example examples/viewport_and_scenes/position_from_world shows how to position a so that it always remains at the middle, regardless of how you move and zoom the camera. It comes down to …

Castle Game Engine: New manual page “Managing States”, improved list of TCastleTransform descendants in manual

I created a nice documentation about managing states. Some of this information was already available, but scattered over the manual and not so clearly organized. The new page should serve as a clear documentation how states are supposed to be used. We have a nice list of TCastleTransform descendants with screenshots in the manual page …

Castle Game Engine: Vectors changes, to avoid a trap with modifying a temporary value

We have made a significant change to how our vectors are declared. They now have X, Y, Z, W as fields (not properties), and the compiler will prevent you from falling into a trap of writing Scene.Translation.X := Scene.Translation.X + 10; Like in the below testcase: uses SysUtils, CastleScene, CastleVectors; var S: TCastleScene; begin S …