Xors3d Engine
Changelog


Changelog

Revision 736 (7 December 2011)

Added:
  • xFileCreationTime(), xFileCreationTimeStr(), xFileModificationTime(), xFileModificationTimeStr();
  • PXDD_NO_AXIS constant. If PXDD_NO_AXIS is used and PXDD_WIREFRAME is set the axis won't be drawn;
  • MATRIX_pWORLD, MATRIX_pVIEW, MATRIX_pPROJ, MATRIX_pVIEWpPROJ, MATRIX_WORLDpVIEWpPROJ, MATRIX_pWORLDpVIEWpPROJ. 'p'-prefix means 'from the previous frame';
  • PureBasic header files;
  • EngineSetting: "Input::ListenControllerConnection" which allows to enable or disable game controller connection in the runtime;
  • xCountJoys() to get the number of connected game controllers;
  • xGetEntityWorld() to get the world in which the entity exists;
  • xSetEntityWorld() which moves the entity from its current world to another one.
Changed:
  • xCameraClsColor, xClsColor and xColor now have an additional parameter 'alpha'. Now 2d primitives can be drawn with transparency;
  • for C++ users: buffer functions (xSetBuffer etc) now works with int instead of Handle;
  • two sets of key and mouse constants: with 'x'-prefix and without prefix;
  • lights affect entities only in their world.
Improved:
  • usability of the html log file;
  • now trial timer is rendered into the back buffer only;
  • now connection of the game controllers can be handled in runtime. See "Input::ListenControllerConnection" EngineSetting.
Fixed:
  • 'Technique "" is not found' issue;
  • VB.NET header file;
  • MAV on xDeleteWorld();
  • redundant update of sleeping bodies;
  • sleeping bodies can't be positioned or rotated manually;
  • mounting of the pack files;
  • pack file memory corruption;
  • setting the entity's pick mode;
  • copying of an entity (now the copy is placed into the active world);
  • SPHERETOSPHERE constant (was SPHERETOSHPHERE);
  • xWritePixelFast, xReadPixelFast default buffer parameter;
  • camera view matrix wasn't updated in some cases;
  • a major memory leak in the mesh loader;
  • some minor memory leaks here and there (a few bytes per each graphics initialization);
  • frustum culling of the terrain chunks.
Documentation:
  • Added changelog page;
  • More documentation on Engine settings.

Revision 716 (16 September 2011)

Added:
  • isRecursive argument in xSetEffectTexture() and xEntityTexture().
  • new engine settings:
    • ‘LoadMesh::IgnoreTextures’ (default value is ‘false’) – if ‘true’, while loading the models, the textures are ignored and not loaded.
    • ‘Rendering::AlwaysZWriteOnMeshRendering’ (default value is ‘false’) – if ‘true’, writing to the Z-buffer is not disabled while drawing transparent entities.
  • new square sensitive zone of the Movement Gizmo which is always directed to the camera. Recommended use: movement of the objects in plane which is aligned perpendicular to camera’s direction of view.
  • optional parameters for C# wrapper.
  • xDrawImage() now receive float arguments for smoother movement.
  • xEntityHasBody() – return true if entity has a physical body.
  • xLine3DNodePosition() for changing the position of the specific node.
  • xSetTopWindow() to set a top-level window handle. It is necessary if you render into the window or control element which is not the top-level window.
Changed:
  • xText() now receives x and y coordinates as floats instead of ints. This allows to draw smoother overlayed text.
Improved:
  • internal timers. All time-sensitive systems (animation, physics, etc) should work smoother.
  • performance of static physical entities.
Fixed:
  • changing the mass of an entity if its initial mass is 0.0 (converting a static body into a dynamic one).
  • crash if camera is outside the streaming terrain.
  • crash on 3d-line rendering.
  • crash on xClearWorld() if movement or scale gizmos are used.
  • minor issue in ‘Blitz3D\Physics\Damping – Angular.bb’
  • minor issue in ‘Blitz3D\Physics\Simple Vehicle.bb’
  • not initialized input devices if custom window is used. See xSetTopWindow().
  • picking of entities (the issue is present in rev.710 only)
  • rendering of the transparent surfaces which were drawn more than one time in some cases.
  • shadows with custom camera viewport.
  • wrong detection of the terrain’s height.
  • wrong sensitive zones of the Rotational Gizmo.
  • xGetEntityAlpha() with entities having several surfaces.
  • xReadLine() function.
  • xRenderEntity() with ordered entities.
  • xViewport() with texture buffer.

Revision 710 (12 July 2011)

Added:
  • FX_NOALPHABLEND FX-flag. See docs.
  • xGetXors3dVersion(), xGetXors3dMajorVersion(), xGetXors3dMinorVersion(), xGetXors3dRevision(). See docs (‘System information’ section)
  • xSurfaceTexture(), xSurfaceColor(), xSurfaceAlpha(), xSurfaceShininess(), xSurfaceBlend(), xSurfaceFX(), xSurfaceAlphaRef(), xSurfaceAlphaFunc().
Improved:
  • PICK_BOX and PICK_SPHERE return more accurate picked coordinates.
  • instanced entities are pickable.
  • xLoadFont can load fonts from the specific directory. If the loader fails use the last argument (fontface) to specify the exact name of the fontface.
Fixed:
  • C# header generator.
  • FX_FULLBRIGHT issue.
  • minor bug of the log init.
  • terrain orientation issue.
  • the bug with wrong size of the backbuffer if the size of the window is equal to or greater than the size of desktop. See docs (xGraphics3d()).
  • xSeekFile().
Renamed:
  • xSetAlphaFunc to xEntityAlphaFunc.
  • xSetAlphaRef to xEntityAlphaRef.

Revision 704 (22 June 2011)

Added:
  • KEY_RETURN alias – KEY_ENTER.
Changed:
  • xAmbientLight has an additional argument ‘world’. It is possible to set an ambient light for each world separately. If world is not specified an active world is used.
Improved:
  • logging of the shader effects
Fixed:
  • clearing of the textures.
  • crash if path to log file does not exist.
  • minor issue with the wrong color of the instanced entities.
  • minor issue with wrong surface texture setting.
  • world assignment of copyed and instanced entities.
  • xVertexAlpha
Renamed:
  • all *3DLine* functions to *Line3D*.
  • xMeshesBBIntersect() to xEntitiesBBIntersect(). xMeshesBBIntersect() is now deprecated.

Physics

Added:
  • anisotropic friction.
  • basic vehicle functions (no documentation yet).
  • collision filtering. xEntityCollisionGroup(), xGetEntityCollisionGroup(), xEntityCollisionMask(), xGetEntityCollisionMask().
  • compound shape.
  • concave shape.
  • local transformation of the physical body.
  • physical ray casting.
  • physics constants (joints, debug draw modes, raycasting modes).
  • proxy-versions of the xEntityAddConcaveShape(), xEntityAddConvexShape(), xEntityAddTrimeshShape() functions.
  • restitution parameter. xEntityRestitution(), xGetEntityRestitution().
  • sleeping state. xEntitySleeping(), xEntityWakeUp(), xEntitySleep(), xEntitySleepingThresholds(), xEntityLinearSleepingThreshold(), xEntityAngularSleepingThreshold().
  • terrain shape.
  • xEntityAttachBody, xEntityDetachBody.
  • xEntityContactImpulse.
  • xEntityDisableSimulation.
  • xEntityDisableSleeping()
  • xEntityLinearVelocity(), xEntityLinearVelocityX(), xEntityLinearVelocityY(), xEntityLinearVelocityZ(), xEntityAngularVelocity(), xEntityAngularVelocityX(), xEntityAngularVelocityY(), xEntityAngularVelocityZ().
  • xEntitySetMass(), xEntityGetMass().
  • xJointD6GetPitchAngle(), xJointD6GetYawAngle(), xJointD6GetRollAngle(), xJointD6GetAngle().
  • xJointD6SetLimits(), xJointD6SetLowerLinearLimits(), xJointD6SetUpperLinearLimits(), xJointD6SetLowerAngularLimits(), xJointD6SetLinearLimits().
  • xJointDisableCollisions.
  • xJointEnable(), xJointIsEnabled(), xJointGetImpulse().
  • xJointGetEntityA(), xJointGetEntityB() functions.
  • xJointHingeGetAngle.
  • xPhysicsSetRaycastFilter(), xPhysicsGetRaycastFilter(), xEntitySetRaycastGroup(), xEntityGetRaycastGroup().
Changed:
  • ApplyCentralForce(), ApplyCentralImpulse(), ApplyTorque(), ApplyTorqueImpulse(), ApplyForce(), ApplyImpulse() have additional global and/or globalPoint arguments (see documentation).
  • Joints are created by separate functions: xCreateD6Joint(), xCreateD6SpringJoint(), xCreateBallJoint(), xCreateHingeJoint().
  • joints’ pivots may be set in local and global coordinates.
  • one of the entities connected by the Joint can be null. In this case another entity is connected to a static world.
  • xPhysicsDebugRender has several modes.
Improved:
  • increased performance of the physics debug drawer.
Fixed:
  • issue with the zero size of the physical body of the instanced entity.
Renamed:
  • joints:
    • 6dof to D6
    • 6dofSpring to D6Spring
    • Point2Point to Ball
  • xEntityDamping to xEntitySetDamping;
  • xGetEntityLinearDamping to xEntityGetLinearDamping;
  • xGetEntityAngularDamping to xEntityGetAngularDamping;
  • xEntityFriction to xEntitySetFriction;
  • xGetEntityFriction to xEntityGetFriction;
  • xFreeEntityShapes to xFreeEntityBody;
  • xCountContacts to xEntityCountContacts;
  • xJointHingeLimit to xJointHingeSetLimits.

Samples

  • Added Physics samples.
  • Moved all B3D samples to Deprecated folder.

Revision 688 (8 May 2011)

Improved:
  • now both back and forward slashes are accepted in the path for the pack files.
Fixed:
  • KEY_LALT and KEY_RALT constants.
  • copying of the entities.
  • crash on xClearWorld() and xDestroyGraphics().
  • deleting of the world (sounds menacingly :))
  • possible memory leak in case of failed loading / creating of the mesh.
  • rendering of the terrains with size 64.
  • shadowing of the instanced entities.
  • switching of the wireframe mode when images are drawn.
  • triangle picking.
  • update of the normals of the new dynamic surface.

Revision 686 (17 April 2011)

Added:
  • CAMERA_POSITION semantics.
  • new parameters to xReadLine and xWriteLine to control the line separator. Special constants were added too. See documentation for more information.
  • two new Engine Settings: “Shadows::IgnoreCastingFullBrightSurfaces” and “Shadows::IgnoreReceivingFullBrightSurfaces”. Use them to control shadow casting / receiving by the full bright surfaces.
  • xEntityHidden which returns true if an entity is hidden by xHideEntity().
  • xMouseSpeed() which returns the current mouse speed which is set by an end-user using the mouse control panel application.
Changed:
  • default font to ‘Tahoma 10′.
  • now xInitShadows() returns an effect handle.
Fixed:
  • 3ds loader (wrong axis for the children meshes).
  • CAMERA_DIRECTION semantics when used with Tweening.
  • detection of RAM size greater than 4GB.
  • freeing of entities in xClearWorld().
  • issue of reading the lines from the mounted pack files (xReadLine).
  • issue with a directional light and inactive world.
  • minor issue of the skeletal animation (too long playback of the last frame in the sequence).
  • terrains with size = 64.
  • wrong aspect ratio in the case if the graphics is restarted with another resolution. Note that the previous aspect ratio will be replaced with a new real aspect ratio. If you need a not native aspect ratio you should set it again.
  • crash of the xCalculateFrustumVolume() function with an empty meshes / surfaces.
  • xCopyEntity() with Parenting.
Documentation:
  • xEntityReceiveShadows() is placed in the Shadows section of the documentation.

Revision 681 HOTFIX (13 March 2011)

Fixed:
  • xCameraClsMode (redundant clearance of the back buffer has been done due to need of the virtual viewport).

Revision 679 (13 March 2011)

Added:
  • graphics aspect ratio. See xGraphicsAspectRatio(), xGraphicsWidth(), xGraphicsHeight(), xVideoAspectRatioStr(), xVideoAspectRatio().
  • logging of monitor details.
Changed:
  • now every 2d output is affected by xOrigin().
  • now xCreateLog() and xCloseLog() return an error code if failed.
Fixed:
  • “No header in html log” issue.
  • Tweening + entity alpha.
  • terrain shadows.
  • the shadow tweening.
  • xEntityVisible() with pivots.
Previous change logs at hot.xors3d.com