瀏覽代碼

Upgraded demo sources

GLScene 4 年之前
父節點
當前提交
f44b932a5d
共有 58 個文件被更改,包括 288 次插入175 次删除
  1. 1 0
      Demos/CPP/graph/fxy/Unit1.cpp
  2. 1 0
      Demos/CPP/graph/fxy/Unit1.dfm
  3. 1 0
      Demos/CPP/graph/fxy/Unit1.h
  4. 1 1
      Demos/CPP/interface/GuiPaint/Unit1.cpp
  5. 28 28
      Demos/CPP/interface/GuiPaint/Unit1.h
  6. 9 6
      Demos/CPP/interface/bmpfont/Bmpfont.cbproj
  7. 2 2
      Demos/Delphi/behaviours/Torque.dpr
  8. 1 1
      Demos/Delphi/bench/Volcano.dpr
  9. 2 2
      Demos/Delphi/extrusion/Tentacles.dpr
  10. 2 2
      Demos/Delphi/graph/Projection.dpr
  11. 5 5
      Demos/Delphi/interface/Camera.dpr
  12. 1 1
      Demos/Delphi/interface/Fading.dpr
  13. 2 2
      Demos/Delphi/interface/HFpick.dpr
  14. 1 1
      Demos/Delphi/interface/Winfont.dpr
  15. 1 1
      Demos/Delphi/materials/CustomQuad.dpr
  16. 4 4
      Demos/Delphi/materials/Fire2D_GR32.dpr
  17. 1 1
      Demos/Delphi/materials/Mirror.dpr
  18. 1 1
      Demos/Delphi/materials/MultiPass.dpr
  19. 1 1
      Demos/Delphi/materials/TexCombine.dpr
  20. 1 1
      Demos/Delphi/materials/TexFormat.dpr
  21. 1 1
      Demos/Delphi/meshes/Actor.dpr
  22. 2 2
      Demos/Delphi/meshes/ActorTwocam.dpr
  23. 3 3
      Demos/Delphi/meshes/Actorms3d.dpr
  24. 6 6
      Demos/Delphi/meshes/Formula.dpr
  25. 2 2
      Demos/Delphi/meshes/Skeletal.dpr
  26. 3 3
      Demos/Delphi/meshes/SynthTerrain.dpr
  27. 2 2
      Demos/Delphi/meshes/Terrain.dpr
  28. 3 3
      Demos/Delphi/movements/Column.dpr
  29. 二進制
      Demos/Delphi/movements/Column.jpg
  30. 二進制
      Demos/Delphi/movements/Events.jpg
  31. 3 3
      Demos/Delphi/movements/Hierarchy.dpr
  32. 二進制
      Demos/Delphi/movements/Hierarchy.jpg
  33. 1 1
      Demos/Delphi/movements/Manual.dpr
  34. 二進制
      Demos/Delphi/movements/Manual.jpg
  35. 二進制
      Demos/Delphi/movements/Objmove.jpg
  36. 二進制
      Demos/Delphi/movements/PointTo.jpg
  37. 3 3
      Demos/Delphi/movements/Pointto.dpr
  38. 1 1
      Demos/Delphi/movements/Pong.dpr
  39. 二進制
      Demos/Delphi/movements/Pong.jpg
  40. 二進制
      Demos/Delphi/movements/SmoothNavigator.jpg
  41. 3 6
      Demos/Delphi/movements/Tweening.dpr
  42. 二進制
      Demos/Delphi/movements/Tweening.jpg
  43. 167 58
      Demos/Delphi/movements/aMovements.htm
  44. 1 1
      Demos/Delphi/rendering/Culling.dpr
  45. 1 1
      Demos/Delphi/rendering/MultiProxy.dpr
  46. 2 2
      Demos/Delphi/rendering/Tobitmap.dpr
  47. 1 1
      Demos/Delphi/specialsFX/Beer.dpr
  48. 1 1
      Demos/Delphi/specialsFX/Boom.dpr
  49. 1 1
      Demos/Delphi/specialsFX/Candles.dpr
  50. 3 3
      Demos/Delphi/specialsFX/Fire.dpr
  51. 1 1
      Demos/Delphi/specialsFX/MotionBlur.dpr
  52. 1 1
      Demos/Delphi/specialsFX/Spiral.dpr
  53. 1 1
      Demos/Delphi/specialsFX/Warping.dpr
  54. 2 2
      Demos/Delphi/sprites/Caterpillar.dpr
  55. 1 1
      Demos/Delphi/utilities/GuiEditor/GuiEditor.dpr
  56. 1 1
      Demos/Delphi/utilities/joystick/JoystickDemo.dpr
  57. 1 1
      Demos/Delphi/utilities/recorder/Recorder.dpr
  58. 4 3
      Demos/Delphi/utilities/screensaver/Unit2.pas

+ 1 - 0
Demos/CPP/graph/fxy/Unit1.cpp

@@ -155,3 +155,4 @@ void __fastcall TForm1::FormCreate(TObject *Sender)
 }
 //---------------------------------------------------------------------------
 
+

+ 1 - 0
Demos/CPP/graph/fxy/Unit1.dfm

@@ -34,6 +34,7 @@ object Form1: TForm1
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove
     TabOrder = 0
+    ExplicitLeft = -5
   end
   object Panel1: TPanel
     Left = 430

+ 1 - 0
Demos/CPP/graph/fxy/Unit1.h

@@ -46,6 +46,7 @@ __published:                   // IDE-managed Components
           TPoint &MousePos, bool &Handled);
 	void __fastcall RadioGroup1Click(TObject *Sender);
 	void __fastcall FormCreate(TObject *Sender);
+
 private:                       // User declarations
 	int mx,my;
 	void __fastcall Formula0(const float x, const float y, float &z,

+ 1 - 1
Demos/CPP/interface/GuiPaint/Unit1.cpp

@@ -24,11 +24,11 @@ TForm1 *Form1;
 __fastcall TForm1::TForm1(TComponent* Owner)
 	: TForm(Owner)
 {
+  SetGLSceneMediaDir();
 }
 //---------------------------------------------------------------------------
 void __fastcall TForm1::FormCreate(TObject *Sender)
 {
-  SetGLSceneMediaDir();
   GLCanvas->MaxInvalidRenderCount = 40;
   StartX = -1;
 }

+ 28 - 28
Demos/CPP/interface/GuiPaint/Unit1.h

@@ -1,8 +1,8 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 #ifndef Unit1H
 #define Unit1H
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #include <System.Classes.hpp>
 #include <Vcl.Controls.hpp>
 #include <Vcl.StdCtrls.hpp>
@@ -21,10 +21,10 @@
 #include <Vcl.Dialogs.hpp>
 #include <Vcl.ExtCtrls.hpp>
 #include <Vcl.Menus.hpp>
-//---------------------------------------------------------------------------
-class TForm1 : public TForm
-{
-__published:	// IDE-managed Components
+
+// ---------------------------------------------------------------------------
+class TForm1 : public TForm {
+__published: // IDE-managed Components
 	TGLSceneViewer *GLSceneViewer1;
 	TGLScene *GLScene1;
 	TGLLightSource *GLLightSource1;
@@ -56,23 +56,25 @@ __published:	// IDE-managed Components
 	TOpenDialog *OpenDialog1;
 	TSaveDialog *SaveDialog1;
 	void __fastcall FormCreate(TObject *Sender);
-	void __fastcall GLCadencer1Progress(TObject *Sender, const double deltaTime, const double newTime);
+	void __fastcall GLCadencer1Progress(TObject *Sender, const double deltaTime,
+		const double newTime);
 	void __fastcall Timer1Timer(TObject *Sender);
 	void __fastcall miWindowsFont1Click(TObject *Sender);
-	void __fastcall GLSceneViewer1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
-          int X, int Y);
-	void __fastcall GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift, int X,
-          int Y);
-	void __fastcall GLSceneViewer1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
-          int X, int Y);
+	void __fastcall GLSceneViewer1MouseDown(TObject *Sender,
+		TMouseButton Button, TShiftState Shift, int X, int Y);
+	void __fastcall GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift,
+		int X, int Y);
+	void __fastcall GLSceneViewer1MouseUp(TObject *Sender, TMouseButton Button,
+		TShiftState Shift, int X, int Y);
 	void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
 	void __fastcall FormKeyPress(TObject *Sender, System::WideChar &Key);
 	void __fastcall FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift);
-	void __fastcall GLCanvasMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
-          int X, int Y);
-	void __fastcall GLCanvasMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
-	void __fastcall GLCanvasMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
-          int X, int Y);
+	void __fastcall GLCanvasMouseDown(TObject *Sender, TMouseButton Button,
+		TShiftState Shift, int X, int Y);
+	void __fastcall GLCanvasMouseMove(TObject *Sender, TShiftState Shift,
+		int X, int Y);
+	void __fastcall GLCanvasMouseUp(TObject *Sender, TMouseButton Button,
+		TShiftState Shift, int X, int Y);
 	void __fastcall GLCanvasRender(TGLCustomControl *Sender, TBitmap *Bitmap);
 	void __fastcall PenButtonButtonClick(TObject *Sender);
 	void __fastcall BrushButtonButtonClick(TObject *Sender);
@@ -81,24 +83,22 @@ __published:	// IDE-managed Components
 	void __fastcall RedButtonButtonClick(TObject *Sender);
 	void __fastcall GreenButtonButtonClick(TObject *Sender);
 	void __fastcall BlueButtonButtonClick(TObject *Sender);
-	void __fastcall GLCanvasAcceptMouseQuery(TGLBaseControl *Sender, TShiftState Shift,
-          TGLMouseAction Action, TMouseButton Button, int X, int Y, bool &Accept);
+	void __fastcall GLCanvasAcceptMouseQuery(TGLBaseControl *Sender,
+		TShiftState Shift, TGLMouseAction Action, TMouseButton Button, int X,
+		int Y, bool &Accept);
 	void __fastcall GLForm1Moving(TGLForm *Sender, float &Left, float &Top);
 	void __fastcall miOpen1Click(TObject *Sender);
 	void __fastcall miSave1Click(TObject *Sender);
-
-
-
-
-private:	// User declarations
+private: // User declarations
 	int StartX;
 	int StartY;
 	int CurrentX;
 	int CurrentY;
-public:		// User declarations
+public: // User declarations
 	__fastcall TForm1(TComponent* Owner);
 };
-//---------------------------------------------------------------------------
+
+// ---------------------------------------------------------------------------
 extern PACKAGE TForm1 *Form1;
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #endif

+ 9 - 6
Demos/CPP/interface/bmpfont/Bmpfont.cbproj

@@ -125,6 +125,9 @@
         <Defines>_DEBUG;$(Defines)</Defines>
         <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi</LinkPackageImports>
         <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <Defines>_DEBUG;$(Defines)</Defines>
@@ -226,11 +229,7 @@
                 </Excluded_Packages>
             </CPlusPlusBuilder.Personality>
             <Deployment Version="3">
-                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
-                    <Platform Name="OSX64">
-                        <Overwrite>true</Overwrite>
-                    </Platform>
-                </DeployFile>
+                <DeployFile LocalName=".\Win32\Debug\Bmpfont.tds" Configuration="Debug" Class="DebugSymbols"/>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c260.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
@@ -290,8 +289,12 @@
                     </Platform>
                 </DeployFile>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64160mt.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64160.dll" Class="DependencyModule"/>
-                <DeployFile LocalName=".\Win32\Debug\Bmpfont.tds" Configuration="Debug" Class="DebugSymbols"/>
                 <DeployClass Name="AdditionalDebugSymbols">
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>

+ 2 - 2
Demos/Delphi/behaviours/Torque.dpr

@@ -2,11 +2,11 @@
 
 	There are three objects, which we assign three different dampings, and we
 	apply a torque to the object under the mouse pointer, other are left along
-	with their inertia (and damping makes them progressively reduce their speed).<br>
+	with their inertia (and damping makes them progressively reduce their speed).
 	There is also a checkbox to double the objects mass.
 
 	Notice how the constant damping stops abruptly the dodecahedron, while the
-	the octahedron, once spinned, is slowing down but never really stops.<br>
+	the octahedron, once spinned, is slowing down but never really stops.
 	However, don't show this sample to your science teacher, since our "torque"
 	is actually an angular acceleration in degrees that gets affected by the
 	object's mass... Anyway, it looks like a real torque is applied.

+ 1 - 1
Demos/Delphi/bench/Volcano.dpr

@@ -1,7 +1,7 @@
 {: Scene-wide Particles FX bench.
 
    Originally planned for the specials FX, but become a bench due to lack of
-   time to improve graphics ;)<br>
+   time to improve graphics ;)
    This is quite a brute-force situation for the Particles FX Renderer, two
    systems are present (Red an Blue) but Red contains the bulk of the particles.
 

+ 2 - 2
Demos/Delphi/extrusion/Tentacles.dpr

@@ -1,13 +1,13 @@
 {: Tentacles demo, a weird use for TGLPipe.
 
    Serves as a test for TGLPipe's ability to have a per-node color with smooth
-   interpolation between nodes, and as some kind of sickening modern art...<br>
+   interpolation between nodes, and as some kind of sickening modern art...
    Position of the nodes, radius and color are updated for each frame. Note that
    the TGLPipe's ObjectStyle is altered to make it "osDirectDraw": since the geometry
    is constantly altered, it's no use compiling/saving it for the next frame,
    setting the style to "osDirectDraw" tells GLScene the object should be rendered
    directly (faster when geometry constantly changes, slower  when geometry is
-   static from one frame to the other).<br>
+   static from one frame to the other).
    Try commenting out that line and see for yourself ;).
 }
 program Tentacles;

+ 2 - 2
Demos/Delphi/graph/Projection.dpr

@@ -1,7 +1,7 @@
 (* Parallel projection demo.
 
    This simple demo shows how to do parallel projection and blend some custom
-   OpenGL calls into the scene.<br>
+   OpenGL calls into the scene.
    You can change the viewpoint with left clic drags, change the plane orientation
    with right clic drags, and move the plane up/down with the wheel.
 
@@ -10,7 +10,7 @@
    and rendered on the fly in a TGLDirectOpenGL. This is a typical case where
    a little bit of custom code helps a lot: we could have used many TGLLines
    object to draw the lines, but this would have resulted in a lot of object
-   creation and update code, and ultimately in rather poor performance.<br>
+   creation and update code, and ultimately in rather poor performance.
    Note the position of the plane in the scene hierarchy: it is last as it is
    a blended object. Try making it the first object, it will appear opaque
    (though it is still transparent!).

+ 5 - 5
Demos/Delphi/interface/Camera.dpr

@@ -7,11 +7,11 @@
 	Movements in this sample are done by moving the mouse with a button
 	pressed, left button will translate the dummy cube (and the camera),
 	right button will rotate the camera around the target, shift+right will
-   rotate the object in camera's axis.<br>
-	Mouse Wheel allows zooming in/out.<br>
-	'7', '9' rotate around the X vector (in red, absolute).<br>
-	'4', '6' rotate around the Y vector (in green, absolute).<br>
-	'1', '3' rotate around the Z vector (in blue, absolute).<br>
+   rotate the object in camera's axis.
+	Mouse Wheel allows zooming in/out.
+	'7', '9' rotate around the X vector (in red, absolute).
+	'4', '6' rotate around the Y vector (in green, absolute).
+	'1', '3' rotate around the Z vector (in blue, absolute).
 }
 program Camera;
 

+ 1 - 1
Demos/Delphi/interface/Fading.dpr

@@ -7,7 +7,7 @@
 	It is implemented here using a shared field, "currentPick" (by shared,
 	I mean it's a form field used in more than one event) indicating the
 	object the mouse is currently hovering, a classic timer and the "Progress"
-	chain of events.<br>
+	chain of events.
    When a mouse move is detected, it activates a timer, and when this timer
    is fired, the picking is performed. The "direct" approach would perform
    picking in the mousemove event, however, if the picking takes more time

+ 2 - 2
Demos/Delphi/interface/HFpick.dpr

@@ -4,13 +4,13 @@
    heightfield, using it for a basic "3D paint". In "paint" mode,
    the left button will paint in blue and the right one in red.
    The "rotate" mode allows you to move around the height field
-   to continue your painting from a different angle.<br>
+   to continue your painting from a different angle.
    No you can't save your art ;)
 
    The picking is performed by getting the 3D coordinates from the
    2D mouse coordinates via PixelRayToWorld (which reads the depth
    buffer), and converting those absolute 3D coordinates to local
-   coordinates of the HeightField, the last steps are then obvious.<br>
+   coordinates of the HeightField, the last steps are then obvious.
    This method is approximate in that its precision highly depends on
    that of the ZBuffer. It will also fail if some objects "obstructs"
    picking (prevent the read of a proper ZBuffer value).

+ 1 - 1
Demos/Delphi/interface/Winfont.dpr

@@ -3,7 +3,7 @@
    The WindowsBitmapFont can automatically generate a font texture based on
    one of the standard windows fonts. The texture dimensions are automatically
    computed to maximize the texture's fill ratio, up to a size of 512x512,
-   with the usual ASCII character range being the default.<br>
+   with the usual ASCII character range being the default.
    Should you happen to require larger fonts (that do not fit the max texture
    size), you can try to reduce the default range, or split it and request
    only the characters you will actually use.

+ 1 - 1
Demos/Delphi/materials/CustomQuad.dpr

@@ -1,7 +1,7 @@
 {: Using materials in a TGLDirectOpenGL OnRender.
 
    This demo shows how to dynamically create materials in a material library
-   and use them in a TGLDirectOpenGL to render your own stuff.<br>
+   and use them in a TGLDirectOpenGL to render your own stuff.
    The render is quite simple: two quads, each with its own texture. The
    TGLDirectOpenGL is placed in a small hierarchy with a torus and dummy cube,
    and the rotation animation are handled by those two object to show that

+ 4 - 4
Demos/Delphi/materials/Fire2D_GR32.dpr

@@ -10,11 +10,11 @@
   To use Graphics32 with GLScene:
 
   1. Make sure GLS_Graphics32_SUPPORT is defined in GLSCene.inc. Recompile if
-     needed.<br>
-  2. In your program, use code like:<br>
+     needed.
+  2. In your program, use code like:
 
-       GLTexture.Image.GetBitmap32(0).assign(Bitmap32);<br>
-       GLTexture.Image.NotifyChange(self);<br>
+       GLTexture.Image.GetBitmap32(0).assign(Bitmap32);
+       GLTexture.Image.NotifyChange(self);
 
      to assign the Bitmap32 to your GLScene texture and notify GLScene.
 

+ 1 - 1
Demos/Delphi/materials/Mirror.dpr

@@ -11,7 +11,7 @@
 
    If you want your mirror to be transparent, you must respect a rendering order
    and have the non-transparent objects rendered last (this includes the mirror,
-   like any other blended object, see materials/transparency for an explanation).<br>
+   like any other blended object, see materials/transparency for an explanation).
    Also note that some of the options (stenciling, clearZBuffer) <b>require</b>
    a stencil buffer (must be enabled in the viewer's buffer), but stenciling may
    not always be hardware accelerated (modern boards will support it).

+ 1 - 1
Demos/Delphi/materials/MultiPass.dpr

@@ -7,7 +7,7 @@
    You'll also note the glPolygonOffset call, it displaces fragments depths
    value a little "farther away" so that surface fill depth values do not
    interact with the rendering of the lines (comment out the call and you'll
-   see).<br>
+   see).
    The axis and sphere allow you to see the limit of that simple technique:
    it actually "paints" between the lines, so you cannot use it to make
    transparent wireframed objects with hidden lines - if that thought ever

+ 1 - 1
Demos/Delphi/materials/TexCombine.dpr

@@ -7,7 +7,7 @@
    be used, and how each should be combined with the others. Basicly,
    a texture combiner "code" defines how each texture should be combined,
    knowing that the result of the last texture unit (the one with the higher
-   index) defines the final output.<br>
+   index) defines the final output.
    Note that if the code allows you to declare the combiners in any order,
    the hardware will evaluate them in their index order, and will only accept
    one combiner assignement for each texture unit.

+ 1 - 1
Demos/Delphi/materials/TexFormat.dpr

@@ -6,7 +6,7 @@
 
    For texture compression to work... it must be supported by your 3D card,
    so older boards may not see any change when applying texture compression
-   (the setting is ignored by GLScene if unsupported).<br>
+   (the setting is ignored by GLScene if unsupported).
    Alternatively, some OpenGL ICD will use only one or two compression formats,
    and you may not see any difference between the standard/fastest/nicest
    compression modes.

+ 1 - 1
Demos/Delphi/meshes/Actor.dpr

@@ -9,7 +9,7 @@
    An actor is basicly a set of frames (or poses), which are arranged in
    animations, for instance to animate a salute, we have a first frame with
    the hand down, in the second it moved up, etc. Each animation consists
-   series of frame defined by a name, a start frame and an end frame.<br>
+   series of frame defined by a name, a start frame and an end frame.
    TGLActor take cares of animation (through progression events generated by
    a cadencer for instance) and generates intermediate frames if interpolation
    is enabled. In this sample only "Loop" mode is used, but note that there

+ 2 - 2
Demos/Delphi/meshes/ActorTwocam.dpr

@@ -1,13 +1,13 @@
 {: Actor movement with two cameras (first-person and third-person)
 
-   The movement control is a little "doom-like" and keyboard only.<br>
+   The movement control is a little "doom-like" and keyboard only.
    This demos mainly answers to "doom-like" movement questions and keyboard
    handling in GLScene.
    The basic principle is to check which key are pressed, and for each movement
    key, multiply the movement by the deltaTime and use this value as delta
    position or angle.
    The frame rate may not be that good on non-T&L accelerated board, mainly due
-   to the mushrooms that are light on fillrate needs, but heavy on the polygons.<br>
+   to the mushrooms that are light on fillrate needs, but heavy on the polygons.
    This demonstrates how badly viewport object-level clipping is needed in
    GLScene :), a fair share of rendering power is lost in projecting
    objects that are out of the viewing frustum.

+ 3 - 3
Demos/Delphi/meshes/Actorms3d.dpr

@@ -7,10 +7,10 @@
     The demo also shows the use of double sided textures (her hair), specular lighting,
     and transparency. To make a texture doublesided, just give it a tiny bit of transparency
     in Milkshape. This will cause the loader to turn off backface culling for any group that
-    uses that material. <br>
+    uses that material. 
 
     I have also utilized one of Yar's shader demos modified a little so the spotlight
-    will always follow the actor during the animation sequence.<br>
+    will always follow the actor during the animation sequence.
 
     Model was made with MS3D, UVMapping and texturing were done with Paintshop and UVMapper Pro
 
@@ -18,7 +18,7 @@
     want to stop all root node translations. I'll be adding an overloaded method in the real soon.
     For now,  if you do not want root node transformations (i.e. you want her to stay in one spot)
     uncomment the line: //pos:=ms3d_joints^[i].Base.Position.V; where the animations are loaded
-    in GLFileMS3D.<br>
+    in GLFileMS3D.
 
     TL
 }

+ 6 - 6
Demos/Delphi/meshes/Formula.dpr

@@ -12,17 +12,17 @@
 
    In triangle mode, the normals are computed on a triangle basis, hence the
    facetted look, for triangle-strip, they are computed for each vertex based
-   on the triangle it completes (smooth along strip-direction).<br>
+   on the triangle it completes (smooth along strip-direction).
 
    The reader may make the "good" looking version (ie. smooth aspect in all
    direction) by calculating the proper normal from the formula instead of
-   using standard normal calculations.<br>
+   using standard normal calculations.
 
-   Sample framerates (K6-400 + Sofware OpenGL), 5000 triangles (cResolution=25) :<br>
-   -  mmTriangles : 9.6 FPS<br>
+   Sample framerates (K6-400 + Sofware OpenGL), 5000 triangles (cResolution=25) :
+   -  mmTriangles : 9.6 FPS
    -  mmTriangleStrip : 17.2 FPS
-   Sample framerates (K7-500 + GeForce 256), 20000 triangles (cResolution=50) :<br>
-   -  mmTriangles : 53 FPS<br>
+   Sample framerates (K7-500 + GeForce 256), 20000 triangles (cResolution=50) :
+   -  mmTriangles : 53 FPS
    -  mmTriangleStrip : 202 FPS
 }
 program Formula;

+ 2 - 2
Demos/Delphi/meshes/Skeletal.dpr

@@ -2,7 +2,7 @@
 
    This demo loads a SMD model and 3 of its animation (SMD are part of and
    Half-Life MDL file, and may be extracted to individual files with tools
-   like MilkShape).<br>
+   like MilkShape).
    SMD loading order matters: the "model" SMD must be loaded first, it contains
    bones and vertex data, the "animation" SMD are loaded afterwards with
    AddDataFromFile, they contain only bone animation data. Don't forget to link
@@ -21,7 +21,7 @@
    the model's author if it ain't anatomically correct (hand edited smd with
    only three keyframes).
 
-   Model Author: Neal 'Guplik' Corbett, edited by ~A.u.s.t.i.n. ([email protected])<br>
+   Model Author: Neal 'Guplik' Corbett, edited by ~A.u.s.t.i.n. ([email protected])
    Thanks!
 *)
 program Skeletal;

+ 3 - 3
Demos/Delphi/meshes/SynthTerrain.dpr

@@ -12,17 +12,17 @@
    All you need to understand to use TGLCustomHDS is what goes on in the
    OnStartPreparingData. You can have a quick look at the FormCreate, but there
    is nothing special: it setups initial camera position and prepares 3 1D
-   textures for use in the terrain rendering.<br>
+   textures for use in the terrain rendering.
    When implementing OnStartPreparingData, keep in mind that this event is a
    request from the terrain rendering engine, it asks for elevation and texture
    data for a new tile that comes in visibility range (or was marked directy
    and rhas new data, f.i. in the case of dynamic terrain). The engine requires
    its data in a specific format, the code revolving around DataType is there
    for that purpose If you are in an application specific context, this phase
-   may be unnecessary (just prepare the data in the format you were asked).<br>
+   may be unnecessary (just prepare the data in the format you were asked).
    The TGLHeightData you receive is empty, meaning you've got to allocate it first
    (with the Allocate method), and then fill it using one of the various properties
-   (see TGLHeightData).<br>
+   (see TGLHeightData).
    The material is specified by the MaterialName property (the material library
    being linked at the TGLTerrainRenderer level). Materials used can be dynamic
    between frames, but must remain coherent throughout a frame, and for as long

+ 2 - 2
Demos/Delphi/meshes/Terrain.dpr

@@ -1,14 +1,14 @@
 {: Basic terrain rendering demo.
 
    This demo showcases the TerrainRenderer, some of the SkyDome features
-   and bits of 3D sound 'cause I got carried over ;)<br>
+   and bits of 3D sound 'cause I got carried over ;)
    The terrain HeightData is provided by a TGLBitmapHDS (HDS stands for
    "Height Data Source"), and displayed by a TGLTerrainRenderer.
 
    The base terrain renderer uses a hybrid ROAM/brute-force approach to
    rendering terrain, by requesting height data tiles, then rendering them
    using either triangle strips (for those below "QualityDistance") or ROAM
-   tessellation.<br>
+   tessellation.
    Note that if the terrain is wrapping in this sample (to reduce the required
    datasets size), the engine is *not* aware of it and does not exploit this
    fact in any way: it considers just an infinite terrain.

+ 3 - 3
Demos/Delphi/movements/Column.dpr

@@ -1,4 +1,4 @@
-{: This form showcases runtime object creation and framerate independant motion.
+(* This form showcases runtime object creation and framerate independant motion.
 
 	We start with an almost empty scene. The dummy cube is used as a convenient
 	way to orient the camera (using its TargetObject property). Planes are
@@ -8,7 +8,7 @@
 	Framerate independance motion is obtained by using a clock reference (in
 	this sample, it is given by the TGLCadencer, which uses the high performance
    precision counter as reference). You can check it by resizing the window :
-   whatever the framerate, the spin speed is the same.<br>
+   whatever the framerate, the spin speed is the same.
 	In this sample, it is extremely simply done, but with more complex scenes
 	and movements the same rule applies : for framerate independant motion, you
 	need a clock measurement.
@@ -20,7 +20,7 @@
 
 	Note that measured framerates are 1 sec averages, a TTimer is used to refresh
    and reset FPS counter.
-}
+*)
 program Column;
 
 uses

二進制
Demos/Delphi/movements/Column.jpg


二進制
Demos/Delphi/movements/Events.jpg


+ 3 - 3
Demos/Delphi/movements/Hierarchy.dpr

@@ -1,7 +1,7 @@
-{: This Form demonstrates basic "hierarchical" movements.
+(* This Form demonstrates basic "hierarchical" movements.
 
 	Our visible (cube) objects are children of TGLDummyCube object and we move
-	them through rotations of the DummyCubes.<br>
+	them through rotations of the DummyCubes.
 	Movements in this demo differs from the "manual" demo : "earth" now spins,
 	"moon" has an inclined orbit and spins too.
 
@@ -9,7 +9,7 @@
 	is recommended to use TGLDummyCube for structural (regroupment only) objects,
 	since dummycube are just "virtual" at run-time and cost no OpenGL setup or
 	rendering time.
-}
+*)
 program Hierarchy;
 
 uses

二進制
Demos/Delphi/movements/Hierarchy.jpg


+ 1 - 1
Demos/Delphi/movements/Manual.dpr

@@ -4,7 +4,7 @@
 
 	A cadencer is used to "play" the animation, it is not used as a time-controler,
    but just as a way to push the animation as fast as possible. See further
-   samples on framerate independance to see how it can be better used.<br>
+   samples on framerate independance to see how it can be better used.
 
 	Note : when using 3Dfx OPENGL and a Voodoo3 on Win9x in 24bits resolution,
 	the driver always uses internal double-buffering (since it can only render

二進制
Demos/Delphi/movements/Manual.jpg


二進制
Demos/Delphi/movements/Objmove.jpg


二進制
Demos/Delphi/movements/PointTo.jpg


+ 3 - 3
Demos/Delphi/movements/Pointto.dpr

@@ -1,12 +1,12 @@
-{: Demo/test case for the PointTo method of objects.
+(* Demo/test case for the PointTo method of objects.
 
    The PointTo method allows to easily orient an object to point toward another
-   object, whatever their relative positions in the scene hierarchy.<br>
+   object, whatever their relative positions in the scene hierarchy.
    In this sample, we have a green sphere turning in circle and riding a sin,
    while a blue arrow, turning in a smaller circle, is maintained pointed
    toward the sphere. The other items (lines...) are just here to help visualize
    the 3D nature of the thing.
-}
+*)
 program Pointto;
 
 uses

+ 1 - 1
Demos/Delphi/movements/Pong.dpr

@@ -1,7 +1,7 @@
 {: This demo is a remake of good old pong game...
 
 	Aim of the game is to prevent the ball from bouncing out of the board,
-	each time the ball bumps on your pad you score a frag (er... point ;).<br>
+	each time the ball bumps on your pad you score a frag (er... point ;).
 	Move the pad with your mouse.
 
    The demo makes use of stencil-based shadow volumes.

二進制
Demos/Delphi/movements/Pong.jpg


二進制
Demos/Delphi/movements/SmoothNavigator.jpg


+ 3 - 6
Demos/Delphi/movements/Tweening.dpr

@@ -1,15 +1,12 @@
-{ : Tweening demo.
+(* Tweening demo.
 
   Original Tweener (caurina.transitions.Tweener) is a Class used to create tweenings
   and other transitions via ActionScript code for projects built on the Flash platform.
 
-  Current demo is an example project of the GLScene's delphi implementation of
+  Current demo is an example project with implementation of
   the tweener library in GLAnimationUtils.pas unit
 
-  <b>History : </b><font size=-1><ul>
-  <li>11/10/12 - YP - Created by Yann Papouin
-  </ul>
-}
+*)
 
 program Tweening;
 

二進制
Demos/Delphi/movements/Tweening.jpg


+ 167 - 58
Demos/Delphi/movements/aMovements.htm

@@ -1,71 +1,180 @@
 <html>
 
 <head>
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1">
-<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=Generator content="Microsoft Word 15 (filtered)">
 <title>Movements demos</title>
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+	{font-family:Wingdings;
+	panose-1:5 0 0 0 0 0 0 0 0 0;}
+@font-face
+	{font-family:"Cambria Math";
+	panose-1:2 4 5 3 5 4 6 3 2 4;}
+@font-face
+	{font-family:Consolas;
+	panose-1:2 11 6 9 2 2 4 3 2 4;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman",serif;}
+a:link, span.MsoHyperlink
+	{color:blue;
+	text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+	{color:purple;
+	text-decoration:underline;}
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
+	{mso-style-link:"\0422\0435\043A\0441\0442 \0417\043D\0430\043A";
+	margin-right:0cm;
+	margin-left:0cm;
+	font-size:12.0pt;
+	font-family:"Times New Roman",serif;}
+p.msonormal0, li.msonormal0, div.msonormal0
+	{mso-style-name:msonormal;
+	margin-right:0cm;
+	margin-left:0cm;
+	font-size:12.0pt;
+	font-family:"Times New Roman",serif;}
+span.a
+	{mso-style-name:"\0422\0435\043A\0441\0442 \0417\043D\0430\043A";
+	mso-style-link:\0422\0435\043A\0441\0442;
+	font-family:Consolas;}
+.MsoChpDefault
+	{font-size:10.0pt;}
+@page WordSection1
+	{size:595.3pt 841.9pt;
+	margin:2.0cm 42.5pt 2.0cm 3.0cm;}
+div.WordSection1
+	{page:WordSection1;}
+ /* List Definitions */
+ ol
+	{margin-bottom:0cm;}
+ul
+	{margin-bottom:0cm;}
+-->
+</style>
+
 </head>
 
-<body bgcolor="#FFFFFF" link="#0000FF" vlink="#800080" lang="FR"
-style="tab-interval:35.4pt">
-
-<p class="MsoPlainText"><font size="4" face="Courier New"><b>Movements
-demos&nbsp;:</b></font></p>
-
-<ul>
-    <li><a href="column/column.dpr"><b>column</b></a><b>&nbsp;:</b><ul>
-            <li>run-time creation of objects</li>
-            <li>framerate independant procedural motion</li>
-        </ul>
-    </li>
-    <li><a href="events\events.dpr"><b>events</b></a><b>&nbsp;:</b><ul>
-            <li>rotates "bars" using time-programmed events</li>
-            <li>fixed-time and variable-time motion</li>
-        </ul>
-    </li>
-    <li><a href="hierarch/hierarch.dpr"><b>hierarch</b></a><b>&nbsp;:</b><ul>
-            <li>moving hierarchically related objects</li>
-            <li>using the DummyCube</li>
-        </ul>
-    </li>
-    <li><a href="manual/manual.dpr"><b>manual</b></a><b>&nbsp;:</b><ul>
-            <li>moving objects using their Position property</li>
-            <li>monitoring frame rate</li>
-            <li>using TGLAsyncTimer for fast &amp; smooth movement</li>
-        </ul>
-    </li>
-    <li><a href="objmove/objmove.dpr"><strong>objmove</strong></a>
-        :<ul>
-            <li>moving objects with the mouse (pick and dragg)</li>
-            <li>using projection methods (3D&lt;-&gt;2D)</li>
-        </ul>
-    </li>
-    <li><a href="pointto\pointto.dpr"><b>pointto</b></a><b>&nbsp;:</b><ul>
-            <li>using PointTo to make an object point toward another</li>
-            <li>framerate independant motion</li>
-        </ul>
-    </li>
-    <li><a href="pong\pong.dpr"><b>pong</b></a><b>&nbsp;:</b><ul>
-            <li>a 3D adaptation of the classic game</li>
-            <li>basic, mouse-driven object movement</li>
-            <li>framerate independant motion</li>
-        </ul>
-    </li>
-    <li><a href="SmoothNavigator\SmoothNavigator.dpr"><b>smoothnavigator</b></a><b>&nbsp;:</b><ul>
-            <li>using the Smooth Navigator to provide smoothed camera movement</li>
-        </ul>
-    </li>
+<body bgcolor=white lang=RU link=blue vlink=purple>
+
+<div class=WordSection1>
+
+<p class=MsoPlainText><b><span lang=FR style='font-size:13.5pt;font-family:
+"Courier New"'>Movements demos&nbsp;:</span></b></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="column/column.dpr"><b>Column</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>run-time creation of objects</span></li>
+  <li class=MsoNormal><span lang=FR>framerate independant procedural motion</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=365 height=335 src=Column.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="events/events.dpr"><b>Events</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>rotates &quot;bars&quot; using
+      time-programmed events</span></li>
+  <li class=MsoNormal><span lang=FR>fixed-time and variable-time motion</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=441 height=291 src=Events.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="hierarch/hierarch.dpr"><b>Hierarch</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>moving hierarchically related objects</span></li>
+  <li class=MsoNormal><span lang=FR>using the DummyCube</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=346 height=280 src=Hierarchy.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="manual/manual.dpr"><b>Manual</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>moving objects using their Position
+      property</span></li>
+  <li class=MsoNormal><span lang=FR>monitoring frame rate</span></li>
+  <li class=MsoNormal><span lang=FR>using TGLAsyncTimer for fast &amp; smooth movement</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=394 height=289 src=Manual.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="objmove/objmove.dpr"><strong>Objmove</strong></a>
+     :</span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>moving objects with the mouse (pick and
+      dragg)</span></li>
+  <li class=MsoNormal><span lang=FR>using projection methods (3D&lt;-&gt;2D)</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=488 height=337 src=Objmove.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="pointto/pointto.dpr"><b>PointTo</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>using PointTo to make an object point
+      toward another</span></li>
+  <li class=MsoNormal><span lang=FR>framerate independant motion</span></li>
+ </ul>
 </ul>
 
-<font size="2">See also :</font></p>
+<p class=MsoNormal><img border=0 width=360 height=235 src=PointTo.jpg></p>
 
-<ul>
-    <li><font size="2">in </font><a
-        href="../behaviours/behaviours.htm"><font size="2">behaviours</font></a><font
-        size="2"> : &quot;torque&quot;</font></li>
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="pong/pong.dpr"><b>Pong</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>a 3D adaptation of the classic game</span></li>
+  <li class=MsoNormal><span lang=FR>basic, mouse-driven object movement</span></li>
+  <li class=MsoNormal><span lang=FR>framerate independant motion</span></li>
+ </ul>
 </ul>
 
-<a href="..\demos.htm">Back</a></p>
+<p class=MsoNormal><img border=0 width=537 height=296 src=Pong.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="SmoothNavigator/SmoothNavigator.dpr"><b>Smoothnavigator</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>using the Smooth Navigator to provide
+      smoothed camera movement</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=543 height=395 src=SmoothNavigator.jpg></p>
+
+<ul type=disc>
+ <li class=MsoNormal><span lang=FR><a href="SmoothNavigator/Tweening.dpr"><b>Tweening</b></a><b>&nbsp;:</b></span></li>
+ <ul type=circle>
+  <li class=MsoNormal><span lang=FR>  Original Tweener
+      (caurina.transitions.Tweener) is a Class used to create tweenings and
+      other transitions via ActionScript code for projects built on the Flash
+      platform.  Current demo is an example project with implementation of  the
+      tweener library in GLAnimationUtils.pas unit</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><span style='font-size:10.0pt'><img border=0 width=528
+height=363 src=Tweening.jpg></span></p>
+
+<p class=MsoNormal><span lang=FR>&nbsp;</span></p>
+
+<p class=MsoNormal><span lang=FR><a href="../demos.htm">Back</a></span></p>
+
+</div>
+
 </body>
+
 </html>

+ 1 - 1
Demos/Delphi/rendering/Culling.dpr

@@ -2,7 +2,7 @@
 
    This sample is used to test and showcase the efficiency (or inefficiency) of
    visibility in various cases. Be aware that the sample may be slow loading
-   (the same mesh is loaded multiple times to put some stress).<br>
+   (the same mesh is loaded multiple times to put some stress).
    In each of the tests, a "square grid" of objects is created and made visible,
    the camera points at the center of the square, making most of the objects
    off-screen. Visibility culling detects that and does not render the off-screen

+ 1 - 1
Demos/Delphi/rendering/MultiProxy.dpr

@@ -2,7 +2,7 @@
 
    The MultiProxy object is used to switch automatically between three models
    of varying resolution (since I'm no good at modelling, these are only
-   three resolution levels of a sphere).<br>
+   three resolution levels of a sphere).
    You'll find the MultiProxy under the GLParticles object in DCTarget,
    the TGLParticles object is used to automatically duplicate the MultiProxy
    and its settings (happens in FormCreate).

+ 2 - 2
Demos/Delphi/rendering/Tobitmap.dpr

@@ -1,9 +1,9 @@
 {: Render To Bitmap sample.
 
-   This demo illustrates the two ways to obtain a 3D scene in a bitmap.<br>
+   This demo illustrates the two ways to obtain a 3D scene in a bitmap.
    The first, which is also the fastest, is to use CreateSnapShot. It allows
    to obtain what you see on the screen, as it was rendered by the 3D acceleration
-   device if any is available.<br>
+   device if any is available.
    The second is to use RenderToBitmap. This makes use of Software OpenGL
    rendering and is significantly slower, but you can render to any size,
    including to bitmap much larger than the screen which are suited for use

+ 1 - 1
Demos/Delphi/specialsFX/Beer.dpr

@@ -1,7 +1,7 @@
 {: Beer demo.
 
    The scene is defined in the DFM, the code only takes care of loading
-   meshes, textures and reacting to mouse clicks.<br>
+   meshes, textures and reacting to mouse clicks.
    A PerlinPFX is used for the foam, a simpler PolyPFX for the bubbles.
    The glass effect uses a texture in sphere mapping mode, the grouping
    of faces in the 3DS model does the rest.

+ 1 - 1
Demos/Delphi/specialsFX/Boom.dpr

@@ -3,7 +3,7 @@
    In this sample, a small sphere is thrusted upward (with a gravity-like
    deceleration) with a small fire trail, explodes (in one of two styles,
    isotropic or ring, chosen at random), and falls back followed by a smoke
-   trail.<br>
+   trail.
    The explosion takes place in 3D, to help you visualize it, hold the mouse
    button down and move around.
 

+ 1 - 1
Demos/Delphi/specialsFX/Candles.dpr

@@ -6,7 +6,7 @@
 
    The "cake" is a simple revolution solid, the candles are based on a cylinder,
    line, fire FX on the line, and a transparent plane (for the 2cents "shadow").
-   The candles are duplicated with a TGLProxyObject each.<br>
+   The candles are duplicated with a TGLProxyObject each.
    Particles in a FireFX are submitted to a uniform acceleration, specified with
    the "FireDir" property, and the "wind" slider directly adjusts it.
 }

+ 3 - 3
Demos/Delphi/specialsFX/Fire.dpr

@@ -1,9 +1,9 @@
 {: The fire special effect basic sample.
 
    If you look at the code you won't see anything fancy. The FireFX is a dynamic
-   special effect (driven by a cadencer). Making use of it means two things :<br>
-   - dropping a FirexFXManager, this one controls fire particle systems aspects<br>
-   - adding a FireFX effect to the object you want to see burning (here, a sphere)<br>
+   special effect (driven by a cadencer). Making use of it means two things :
+   - dropping a FirexFXManager, this one controls fire particle systems aspects
+   - adding a FireFX effect to the object you want to see burning (here, a sphere)
    You may have multiple objects sharing the same FireFXManager, this means they
    will all look the same, but also that the particle system calculations are
    made only once.

+ 1 - 1
Demos/Delphi/specialsFX/MotionBlur.dpr

@@ -3,7 +3,7 @@
    This demo illustrates a simple technique to obtain a motion blur: using
    a plane that covers all the viewport that is used to transparently blend
    the previous frame. By adjusting the transparency, you control how many
-   frames are taken into account in the blur.<br>
+   frames are taken into account in the blur.
    Since it is a frame-to-frame mechanism, the result is highly dependant
    on framerate, which is illustrated here by turning VSync ON or OFF in the
    demo (hit V or S key). You can control the number of frames with the up

+ 1 - 1
Demos/Delphi/specialsFX/Spiral.dpr

@@ -2,7 +2,7 @@
 
    A basic sample for the PFX and the possibility to specify several colors
    to use throughout the life of the particles, additionnally it shows how
-   to use the FullScreenViewer and avoid some pitfalls.<br>
+   to use the FullScreenViewer and avoid some pitfalls.
    There are two PFXs actually, one rendering a spiral with colors from
    yellow (top), then blue, green and red (bottom); the second fades from
    blue to white and "explodes" periodically. The PFX depth-sorts particles

+ 1 - 1
Demos/Delphi/specialsFX/Warping.dpr

@@ -3,7 +3,7 @@
    Load an image (preferably with dimensions a power of two, not too big,
    and less than 256x256 if you have and old hardware, all TNT, GeForce,
    Radeon and better should have no trouble loading big pictures), then click
-   somewhere in the image to define the warp point.<br>
+   somewhere in the image to define the warp point.
    You may use the menu to adjust or choose the effect.
 
    This sample displays an image with the help of a single TGLHeightField used

+ 2 - 2
Demos/Delphi/sprites/Caterpillar.dpr

@@ -1,7 +1,7 @@
 {: Sample showing use of TGLSprite for "caterpillar" effect.
 
 	A bunch of TGLSprite is created in FormCreate, all copied from Sprite2 (used
-	as "template"), then we move and resize them as they orbit a pulsating "star".<br>
+	as "template"), then we move and resize them as they orbit a pulsating "star".
 	Textures are loaded from a "flare1.bmp" file that is expected to be in the
 	same directory as the compiled EXE.
 
@@ -9,7 +9,7 @@
 		<li>blending is set to bmAdditive (for the color saturation effect)
       <li>DepthTest is disabled
 		<li>ball color is determined with the Emission color
-	</ul><br>
+	</ul>
 	The number of sprites is low to avoid stalling a software renderer
 	(texture alpha-blending is a costly effect), if you're using a 3D hardware,
 	you'll get FPS in the hundredths and may want to make the sprite count higher.

+ 1 - 1
Demos/Delphi/utilities/GuiEditor/GuiEditor.dpr

@@ -6,7 +6,7 @@
    windows (opengl) release...  
 
    Be aware that for HUD purposes mip mapping should allways be disabled as the
-   result might become blurred by the mipmap... Reason unknown.<br>
+   result might become blurred by the mipmap... Reason unknown.
 
 	<b>History : </b><font size=-1><ul>
       <li>17/01/07 - DaStr - Fixed calls to GUIComponentDialog function (thanks Andreas)

+ 1 - 1
Demos/Delphi/utilities/joystick/JoystickDemo.dpr

@@ -1,7 +1,7 @@
 {: Using the TJoystick to retrieve joystick position.
 
    The component make it fairly easy to get this info. The first method is to use
-   the events, the second it use its properties.<br>
+   the events, the second it use its properties.
    I've tried to put both methods at use in this sample :<ul>
    <li>spheres on the right are adjusted when button are pressed/depressed
    <li>the 3D stick position is read in the rendering loop

+ 1 - 1
Demos/Delphi/utilities/recorder/Recorder.dpr

@@ -6,7 +6,7 @@
    Be aware that if you use default compression, you will likely get a lossless,
    low compression codec (which may be good if you want the highest quality),
    but you can specify a codec, for instance DiVX (www.divx.com) if you
-   installed it, for high compression video.<br>
+   installed it, for high compression video.
    The codec can be choosed with the Compressor property of TGLAVIRecorder.
 }
 program Recorder;

+ 4 - 3
Demos/Delphi/utilities/screensaver/Unit2.pas

@@ -1,8 +1,9 @@
-{ Properties dialog for the GLScene screensaver sample.
+(* 
+  Properties dialog for the GLScene screensaver sample.
 
   Here is some basic interface and animation stuff showcased in other GLScene
   samples. The selection/hot mechanism is a little different from the approach
-  used in other "interface" samples.<br>
+  used in other "interface" samples.
   Note that the Cadencer is used in "cmManual" mode. Why doing this ? well, on
   slower systems the PickedObject call in each OnMouseMove may overwhelm the
   message queue, and since the Cadencer uses the message queue, this will result
@@ -10,7 +11,7 @@
   mouse. Using the old "AfterRender" trick sorts this out.
 
   Beginners may also be interested in the Registry access.
-}
+*)
 unit Unit2;
 
 interface