diff --git a/2.10/Changes.txt b/2.10/Changes.txt index 1d9f921..7f68f43 100644 --- a/2.10/Changes.txt +++ b/2.10/Changes.txt @@ -1,10 +1,11 @@ -2.02j +2.03a + Fixed save flame naming problem + Save png transparent images + multithread rendering + Parameterized variations + blob variation + pdj variation ++ Added definable limit of added variations count when generating symmetric flames 2.02i + Fixed Randomize gradient in batch bug diff --git a/2.10/Source/ControlPoint.pas b/2.10/Source/ControlPoint.pas index 28a7dc0..a88dd1a 100644 --- a/2.10/Source/ControlPoint.pas +++ b/2.10/Source/ControlPoint.pas @@ -1650,7 +1650,8 @@ begin // for (k = 1; (k < sym)&&(i < NXFORMS); k + + ) { k := 1; - while (k < sym) and (i < NXFORMS) do +// while (k < sym) and (i < NXFORMS) do + while (k < sym) and (i < SymmetryNVars) do begin cp.xform[i].density := 1.0; cp.xform[i].vars[0] := 1.0; diff --git a/2.10/Source/Global.pas b/2.10/Source/Global.pas index 2047366..4374cce 100644 --- a/2.10/Source/Global.pas +++ b/2.10/Source/Global.pas @@ -107,6 +107,7 @@ var defFlameFile: string; SymmetryType: integer; SymmetryOrder: integer; + SymmetryNVars: integer; Variations: array[0..63] of boolean; VariationOptions: int64; { For random gradients } diff --git a/2.10/Source/Options.dfm b/2.10/Source/Options.dfm index 743311d..d99bee6 100644 --- a/2.10/Source/Options.dfm +++ b/2.10/Source/Options.dfm @@ -4,7 +4,7 @@ object OptionsForm: TOptionsForm BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog Caption = 'Options' - ClientHeight = 296 + ClientHeight = 308 ClientWidth = 467 Color = clBtnFace Font.Charset = ANSI_CHARSET @@ -22,7 +22,7 @@ object OptionsForm: TOptionsForm TextHeight = 13 object btnOK: TButton Left = 304 - Top = 264 + Top = 280 Width = 75 Height = 25 Caption = 'OK' @@ -32,7 +32,7 @@ object OptionsForm: TOptionsForm end object btnCancel: TButton Left = 384 - Top = 264 + Top = 280 Width = 75 Height = 25 Caption = 'Cancel' @@ -43,8 +43,8 @@ object OptionsForm: TOptionsForm Left = 8 Top = 8 Width = 451 - Height = 249 - ActivePage = GeneralPage + Height = 265 + ActivePage = RandomPage TabOrder = 0 TabStop = False object GeneralPage: TTabSheet @@ -490,7 +490,7 @@ object OptionsForm: TOptionsForm Left = 8 Top = 136 Width = 193 - Height = 72 + Height = 97 Caption = 'Forced symmetry' TabOrder = 3 object Label7: TLabel @@ -511,6 +511,15 @@ object OptionsForm: TOptionsForm AutoSize = False Caption = 'Order:' end + object Label24: TLabel + Left = 8 + Top = 72 + Width = 32 + Height = 13 + Alignment = taRightJustify + AutoSize = False + Caption = 'Limit:' + end object cmbSymType: TComboBox Left = 48 Top = 16 @@ -548,6 +557,25 @@ object OptionsForm: TOptionsForm TabOrder = 2 Thousands = False end + object txtSymNVars: TEdit + Left = 48 + Top = 70 + Width = 121 + Height = 21 + TabOrder = 3 + Text = '12' + end + object udSymNVars: TUpDown + Left = 169 + Top = 70 + Width = 15 + Height = 21 + Associate = txtSymNVars + Min = 4 + Position = 12 + TabOrder = 4 + Thousands = False + end end end object VariationsPage: TTabSheet @@ -557,7 +585,7 @@ object OptionsForm: TOptionsForm Left = 8 Top = 0 Width = 341 - Height = 217 + Height = 233 HelpContext = 1026 Caption = 'Enabled' TabOrder = 2 @@ -565,7 +593,7 @@ object OptionsForm: TOptionsForm Left = 12 Top = 16 Width = 309 - Height = 189 + Height = 209 ItemHeight = 13 TabOrder = 0 TabWidth = 100 @@ -573,7 +601,7 @@ object OptionsForm: TOptionsForm end object btnSetAll: TButton Left = 356 - Top = 160 + Top = 176 Width = 75 Height = 25 HelpContext = 1027 @@ -583,7 +611,7 @@ object OptionsForm: TOptionsForm end object btnClearAll: TButton Left = 356 - Top = 192 + Top = 208 Width = 75 Height = 25 HelpContext = 1028 @@ -1431,6 +1459,6 @@ object OptionsForm: TOptionsForm end object OpenDialog: TOpenDialog Left = 16 - Top = 264 + Top = 280 end end diff --git a/2.10/Source/Options.pas b/2.10/Source/Options.pas index 3fb1955..1bcb278 100644 --- a/2.10/Source/Options.pas +++ b/2.10/Source/Options.pas @@ -178,6 +178,9 @@ type txtTryLength: TEdit; txtJPEGquality: TComboBox; rgTransparency: TRadioGroup; + Label24: TLabel; + txtSymNVars: TEdit; + udSymNVars: TUpDown; procedure btnCancelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure btnOKClick(Sender: TObject); @@ -280,8 +283,13 @@ begin txtRandomPrefix.text := RandomPrefix; chkKeepbackground.Checked := KeepBackground; cmbSymType.ItemIndex := SymmetryType; - if (SymmetryType = 0) or (SymmetryType = 1) then txtSymOrder.enabled := false; + if (SymmetryType = 0) or (SymmetryType = 1) then + begin + txtSymOrder.enabled := false; + txtSymNVars.enabled := false; + end; udSymOrder.Position := SymmetryOrder; + udSymNVars.Position := SymmetryNVars; { Variations tab } UnpackVariations(VariationOptions); @@ -395,6 +403,7 @@ begin RandomPrefix := txtRandomPrefix.text; SymmetryType := cmbSymType.ItemIndex; SymmetryOrder := udSymOrder.Position; + SymmetryNVars := udSymNVars.Position; KeepBackground := chkKeepbackground.Checked; {Gradient tab } @@ -477,9 +486,14 @@ end; procedure TOptionsForm.cmbSymTypeChange(Sender: TObject); begin if (cmbSymType.ItemIndex = 0) or (cmbSymType.ItemIndex = 1) then - txtSymOrder.enabled := false - else + begin + txtSymOrder.enabled := false; + txtSymNVars.enabled := false; + end else + begin txtSymOrder.enabled := true; + txtSymNVars.enabled := true; + end; end; procedure TOptionsForm.btnSetAllClick(Sender: TObject); diff --git a/2.10/Source/Regstry.pas b/2.10/Source/Regstry.pas index 0b361cc..ac8b9ff 100644 --- a/2.10/Source/Regstry.pas +++ b/2.10/Source/Regstry.pas @@ -267,6 +267,14 @@ begin begin SymmetryOrder := 4; end; + if Registry.ValueExists('SymmetryNVars') then + begin + SymmetryNVars := Registry.ReadInteger('SymmetryNVars'); + end + else + begin + SymmetryNVars := 12; + end; if Registry.ValueExists('VariationOptions') then begin VariationOptions := Registry.ReadInteger('VariationOptions'); @@ -535,6 +543,7 @@ begin RandomDate := ''; SymmetryType := 0; SymmetryOrder := 4; + SymmetryNVars := 12; VariationOptions := 262143; UnpackVariations(VariationOptions); MinNodes := 2; @@ -872,6 +881,7 @@ begin Registry.WriteString('SmoothPaletteFile', defSmoothPaletteFile); Registry.WriteInteger('SymmetryType', SymmetryType); Registry.WriteInteger('SymmetryOrder', SymmetryOrder); + Registry.WriteInteger('SymmetryNVars', SymmetryNVars); Registry.WriteInteger('VariationOptions', VariationOptions); Registry.WriteInteger('ReferenceMode', ReferenceMode); Registry.WriteInteger('MinNodes', MinNodes);