|
From: <CW...@us...> - 2012-03-28 00:53:59
|
Revision: 1519
http://graphics32.svn.sourceforge.net/graphics32/?rev=1519&view=rev
Author: CWBudde
Date: 2012-03-28 00:53:53 +0000 (Wed, 28 Mar 2012)
Log Message:
-----------
+ introduced new symbol OMIT_SSE2 (predefined for old Delphi versions)
Modified Paths:
--------------
trunk/Source/Examples/Vcl/Examples.groupproj
trunk/Source/GR32.inc
trunk/Source/GR32_Blend.pas
Modified: trunk/Source/Examples/Vcl/Examples.groupproj
===================================================================
--- trunk/Source/Examples/Vcl/Examples.groupproj 2012-03-27 17:13:53 UTC (rev 1518)
+++ trunk/Source/Examples/Vcl/Examples.groupproj 2012-03-28 00:53:53 UTC (rev 1519)
@@ -72,172 +72,172 @@
<MSBuild Projects="Blending\PixelCombine_Ex\PixelCombine_Ex.dproj"/>
</Target>
<Target Name="PixelCombine_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Blending\PixelCombine_Ex\PixelCombine_Ex.dproj"/>
+ <MSBuild Projects="Blending\PixelCombine_Ex\PixelCombine_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="PixelCombine_Ex:Make">
- <MSBuild Targets="Make" Projects="Blending\PixelCombine_Ex\PixelCombine_Ex.dproj"/>
+ <MSBuild Projects="Blending\PixelCombine_Ex\PixelCombine_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="TextureBlend_Ex">
<MSBuild Projects="Blending\TextureBlend_Ex\TextureBlend_Ex.dproj"/>
</Target>
<Target Name="TextureBlend_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Blending\TextureBlend_Ex\TextureBlend_Ex.dproj"/>
+ <MSBuild Projects="Blending\TextureBlend_Ex\TextureBlend_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="TextureBlend_Ex:Make">
- <MSBuild Targets="Make" Projects="Blending\TextureBlend_Ex\TextureBlend_Ex.dproj"/>
+ <MSBuild Projects="Blending\TextureBlend_Ex\TextureBlend_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="GradLines_Ex">
<MSBuild Projects="Drawing\GradLines_Ex\GradLines_Ex.dproj"/>
</Target>
<Target Name="GradLines_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Drawing\GradLines_Ex\GradLines_Ex.dproj"/>
+ <MSBuild Projects="Drawing\GradLines_Ex\GradLines_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="GradLines_Ex:Make">
- <MSBuild Targets="Make" Projects="Drawing\GradLines_Ex\GradLines_Ex.dproj"/>
+ <MSBuild Projects="Drawing\GradLines_Ex\GradLines_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="LineStippling_Ex">
<MSBuild Projects="Drawing\LineStippling_Ex\LineStippling_Ex.dproj"/>
</Target>
<Target Name="LineStippling_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Drawing\LineStippling_Ex\LineStippling_Ex.dproj"/>
+ <MSBuild Projects="Drawing\LineStippling_Ex\LineStippling_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="LineStippling_Ex:Make">
- <MSBuild Targets="Make" Projects="Drawing\LineStippling_Ex\LineStippling_Ex.dproj"/>
+ <MSBuild Projects="Drawing\LineStippling_Ex\LineStippling_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Polygons_Ex">
<MSBuild Projects="Drawing\Polygons_Ex\Polygons_Ex.dproj"/>
</Target>
<Target Name="Polygons_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Drawing\Polygons_Ex\Polygons_Ex.dproj"/>
+ <MSBuild Projects="Drawing\Polygons_Ex\Polygons_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Polygons_Ex:Make">
- <MSBuild Targets="Make" Projects="Drawing\Polygons_Ex\Polygons_Ex.dproj"/>
+ <MSBuild Projects="Drawing\Polygons_Ex\Polygons_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="RenderText_Ex">
<MSBuild Projects="Drawing\RenderText_Ex\RenderText_Ex.dproj"/>
</Target>
<Target Name="RenderText_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Drawing\RenderText_Ex\RenderText_Ex.dproj"/>
+ <MSBuild Projects="Drawing\RenderText_Ex\RenderText_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="RenderText_Ex:Make">
- <MSBuild Targets="Make" Projects="Drawing\RenderText_Ex\RenderText_Ex.dproj"/>
+ <MSBuild Projects="Drawing\RenderText_Ex\RenderText_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="ByteMaps_Ex">
<MSBuild Projects="General\ByteMaps_Ex\ByteMaps_Ex.dproj"/>
</Target>
<Target Name="ByteMaps_Ex:Clean">
- <MSBuild Targets="Clean" Projects="General\ByteMaps_Ex\ByteMaps_Ex.dproj"/>
+ <MSBuild Projects="General\ByteMaps_Ex\ByteMaps_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="ByteMaps_Ex:Make">
- <MSBuild Targets="Make" Projects="General\ByteMaps_Ex\ByteMaps_Ex.dproj"/>
+ <MSBuild Projects="General\ByteMaps_Ex\ByteMaps_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Image32_Ex">
<MSBuild Projects="General\Image32_Ex\Image32_Ex.dproj"/>
</Target>
<Target Name="Image32_Ex:Clean">
- <MSBuild Targets="Clean" Projects="General\Image32_Ex\Image32_Ex.dproj"/>
+ <MSBuild Projects="General\Image32_Ex\Image32_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Image32_Ex:Make">
- <MSBuild Targets="Make" Projects="General\Image32_Ex\Image32_Ex.dproj"/>
+ <MSBuild Projects="General\Image32_Ex\Image32_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Mandelbrot_Ex">
<MSBuild Projects="General\Mandelbrot_Ex\Mandelbrot_Ex.dproj"/>
</Target>
<Target Name="Mandelbrot_Ex:Clean">
- <MSBuild Targets="Clean" Projects="General\Mandelbrot_Ex\Mandelbrot_Ex.dproj"/>
+ <MSBuild Projects="General\Mandelbrot_Ex\Mandelbrot_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Mandelbrot_Ex:Make">
- <MSBuild Targets="Make" Projects="General\Mandelbrot_Ex\Mandelbrot_Ex.dproj"/>
+ <MSBuild Projects="General\Mandelbrot_Ex\Mandelbrot_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Rotate_Ex">
<MSBuild Projects="General\Rotate_Ex\Rotate_Ex.dproj"/>
</Target>
<Target Name="Rotate_Ex:Clean">
- <MSBuild Targets="Clean" Projects="General\Rotate_Ex\Rotate_Ex.dproj"/>
+ <MSBuild Projects="General\Rotate_Ex\Rotate_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Rotate_Ex:Make">
- <MSBuild Targets="Make" Projects="General\Rotate_Ex\Rotate_Ex.dproj"/>
+ <MSBuild Projects="General\Rotate_Ex\Rotate_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="ImgView_Layers_Ex">
<MSBuild Projects="Layers\ImgView_Layers_Ex\ImgView_Layers_Ex.dproj"/>
</Target>
<Target Name="ImgView_Layers_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Layers\ImgView_Layers_Ex\ImgView_Layers_Ex.dproj"/>
+ <MSBuild Projects="Layers\ImgView_Layers_Ex\ImgView_Layers_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="ImgView_Layers_Ex:Make">
- <MSBuild Targets="Make" Projects="Layers\ImgView_Layers_Ex\ImgView_Layers_Ex.dproj"/>
+ <MSBuild Projects="Layers\ImgView_Layers_Ex\ImgView_Layers_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="RotLayer_Ex">
<MSBuild Projects="Layers\RotLayer_Ex\RotLayer_Ex.dproj"/>
</Target>
<Target Name="RotLayer_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Layers\RotLayer_Ex\RotLayer_Ex.dproj"/>
+ <MSBuild Projects="Layers\RotLayer_Ex\RotLayer_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="RotLayer_Ex:Make">
- <MSBuild Targets="Make" Projects="Layers\RotLayer_Ex\RotLayer_Ex.dproj"/>
+ <MSBuild Projects="Layers\RotLayer_Ex\RotLayer_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Sprites_Ex">
<MSBuild Projects="Layers\Sprites_Ex\Sprites_Ex.dproj"/>
</Target>
<Target Name="Sprites_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Layers\Sprites_Ex\Sprites_Ex.dproj"/>
+ <MSBuild Projects="Layers\Sprites_Ex\Sprites_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Sprites_Ex:Make">
- <MSBuild Targets="Make" Projects="Layers\Sprites_Ex\Sprites_Ex.dproj"/>
+ <MSBuild Projects="Layers\Sprites_Ex\Sprites_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="NestedSampling_Ex">
<MSBuild Projects="Resampling\NestedSampling_Ex\NestedSampling_Ex.dproj"/>
</Target>
<Target Name="NestedSampling_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Resampling\NestedSampling_Ex\NestedSampling_Ex.dproj"/>
+ <MSBuild Projects="Resampling\NestedSampling_Ex\NestedSampling_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="NestedSampling_Ex:Make">
- <MSBuild Targets="Make" Projects="Resampling\NestedSampling_Ex\NestedSampling_Ex.dproj"/>
+ <MSBuild Projects="Resampling\NestedSampling_Ex\NestedSampling_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="PixelF_Ex">
<MSBuild Projects="Resampling\PixelF_Ex\PixelF_Ex.dproj"/>
</Target>
<Target Name="PixelF_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Resampling\PixelF_Ex\PixelF_Ex.dproj"/>
+ <MSBuild Projects="Resampling\PixelF_Ex\PixelF_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="PixelF_Ex:Make">
- <MSBuild Targets="Make" Projects="Resampling\PixelF_Ex\PixelF_Ex.dproj"/>
+ <MSBuild Projects="Resampling\PixelF_Ex\PixelF_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Resamplers_Ex">
<MSBuild Projects="Resampling\Resamplers_Ex\Resamplers_Ex.dproj"/>
</Target>
<Target Name="Resamplers_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Resampling\Resamplers_Ex\Resamplers_Ex.dproj"/>
+ <MSBuild Projects="Resampling\Resamplers_Ex\Resamplers_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Resamplers_Ex:Make">
- <MSBuild Targets="Make" Projects="Resampling\Resamplers_Ex\Resamplers_Ex.dproj"/>
+ <MSBuild Projects="Resampling\Resamplers_Ex\Resamplers_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="ImgWarping_Ex">
<MSBuild Projects="Transformation\ImgWarping_Ex\ImgWarping_Ex.dproj"/>
</Target>
<Target Name="ImgWarping_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Transformation\ImgWarping_Ex\ImgWarping_Ex.dproj"/>
+ <MSBuild Projects="Transformation\ImgWarping_Ex\ImgWarping_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="ImgWarping_Ex:Make">
- <MSBuild Targets="Make" Projects="Transformation\ImgWarping_Ex\ImgWarping_Ex.dproj"/>
+ <MSBuild Projects="Transformation\ImgWarping_Ex\ImgWarping_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Transform_Ex">
<MSBuild Projects="Transformation\Transform_Ex\Transform_Ex.dproj"/>
</Target>
<Target Name="Transform_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Transformation\Transform_Ex\Transform_Ex.dproj"/>
+ <MSBuild Projects="Transformation\Transform_Ex\Transform_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Transform_Ex:Make">
- <MSBuild Targets="Make" Projects="Transformation\Transform_Ex\Transform_Ex.dproj"/>
+ <MSBuild Projects="Transformation\Transform_Ex\Transform_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Visualization_Ex">
<MSBuild Projects="Transformation\Visualization_Ex\Visualization_Ex.dproj"/>
</Target>
<Target Name="Visualization_Ex:Clean">
- <MSBuild Targets="Clean" Projects="Transformation\Visualization_Ex\Visualization_Ex.dproj"/>
+ <MSBuild Projects="Transformation\Visualization_Ex\Visualization_Ex.dproj" Targets="Clean"/>
</Target>
<Target Name="Visualization_Ex:Make">
- <MSBuild Targets="Make" Projects="Transformation\Visualization_Ex\Visualization_Ex.dproj"/>
+ <MSBuild Projects="Transformation\Visualization_Ex\Visualization_Ex.dproj" Targets="Make"/>
</Target>
<Target Name="Build">
<CallTarget Targets="PixelCombine_Ex;TextureBlend_Ex;GradLines_Ex;LineStippling_Ex;Polygons_Ex;RenderText_Ex;ByteMaps_Ex;Image32_Ex;Mandelbrot_Ex;Rotate_Ex;ImgView_Layers_Ex;RotLayer_Ex;Sprites_Ex;NestedSampling_Ex;PixelF_Ex;Resamplers_Ex;ImgWarping_Ex;Transform_Ex;Visualization_Ex"/>
Modified: trunk/Source/GR32.inc
===================================================================
--- trunk/Source/GR32.inc 2012-03-27 17:13:53 UTC (rev 1518)
+++ trunk/Source/GR32.inc 2012-03-28 00:53:53 UTC (rev 1519)
@@ -39,17 +39,17 @@
(* Symbol PUREPASCAL:
------------------
- Forces GR32 into pure pascal mode. Should be used only for testing and
- debugging purposes.
+ Forces GR32 into pure pascal mode. Should be used only for testing and
+ debugging purposes.
(Defined by default for FPC and DARWIN targets in GR32_Compilers.INC.)
-
+
*)
{-$DEFINE PUREPASCAL}
-
+
(* Symbol DEPRECATEDMODE :
-----------------------
@@ -167,3 +167,22 @@
{$IFDEF TARGET_x64}
{$DEFINE OMIT_MMX}
{$ENDIF}
+
+
+(*
+ Symbol OMIT_SSE2:
+ ----------------
+
+ If defined SSE2 optimizations are not used (omitted)
+
+ For faster pixel/color processing, SSE2 can be used which results in a huge
+ performance boost over PUREPASCAL code or native assembler code.
+
+ In older Delphi versions SSE2 can cause issues with the debugger and thus
+ it is omited by default here.
+*)
+
+ {-$DEFINE OMIT_SSE2}
+ {$IFNDEF COMPILER7_UP}
+ {$DEFINE OMIT_SSE2}
+ {$ENDIF}
Modified: trunk/Source/GR32_Blend.pas
===================================================================
--- trunk/Source/GR32_Blend.pas 2012-03-27 17:13:53 UTC (rev 1518)
+++ trunk/Source/GR32_Blend.pas 2012-03-28 00:53:53 UTC (rev 1519)
@@ -2516,8 +2516,11 @@
end;
{$ENDIF}
+
{ SSE2 versions }
+{$IFNDEF OMIT_SSE2}
+
function BlendReg_SSE2(F, B: TColor32): TColor32;
asm
// blend foreground color (F) to a background color (B),
@@ -3592,6 +3595,7 @@
end;
{$ENDIF}
+{$ENDIF}
{ Misc stuff }
@@ -3755,10 +3759,11 @@
BlendRegistry.Add(FID_COLORSUB, @ColorSub_MMX, [ciMMX]);
BlendRegistry.Add(FID_COLORMODULATE, @ColorModulate_MMX, [ciMMX]);
BlendRegistry.Add(FID_COLORDIFFERENCE, @ColorDifference_MMX, [ciMMX]);
- BlendRegistry.Add(FID_COLOREXCLUSION, @ColorExclusion_MMX, [ciSSE2]);
- BlendRegistry.Add(FID_COLORSCALE, @ColorScale_MMX, [ciSSE2]);
+ BlendRegistry.Add(FID_COLOREXCLUSION, @ColorExclusion_MMX, [ciMMX]);
+ BlendRegistry.Add(FID_COLORSCALE, @ColorScale_MMX, [ciMMX]);
BlendRegistry.Add(FID_LIGHTEN, @LightenReg_MMX, [ciMMX]);
{$ENDIF}
+{$IFNDEF OMIT_MMX}
BlendRegistry.Add(FID_EMMS, @EMMS_SSE2, [ciSSE2]);
BlendRegistry.Add(FID_MERGEREG, @MergeReg_SSE2, [ciSSE2]);
BlendRegistry.Add(FID_COMBINEREG, @CombineReg_SSE2, [ciSSE2]);
@@ -3779,6 +3784,7 @@
BlendRegistry.Add(FID_COLOREXCLUSION, @ColorExclusion_SSE2, [ciSSE2]);
BlendRegistry.Add(FID_COLORSCALE, @ColorScale_SSE2, [ciSSE2]);
BlendRegistry.Add(FID_LIGHTEN, @LightenReg_SSE2, [ciSSE]);
+{$ENDIF}
{$IFNDEF TARGET_x64}
BlendRegistry.Add(FID_MERGEREG, @MergeReg_ASM, []);
{$ENDIF}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|