├── GlassPackage.res
├── misc
└── screenshot.png
├── FrostGlassPackage.res
├── Demo multi device
├── Images
│ └── back7.png
├── FrostGlassDemo.res
├── Entitlement.TemplateOSX32.xml
├── info.plist.TemplateOSX.xml
├── info.plist.TemplateiOS.xml
├── FrostGlassDemo.dpr
├── Entitlement.TemplateiOS.xml
├── Unit19.vlb
├── AndroidManifest.template.xml
├── Unit19.pas
└── FrostGlassDemo.deployproj
├── Statistics.txt
├── FrostGlassPackage.dpk
├── .gitignore
├── README.md
├── GlassProjectGroup.groupproj
├── FrostGlass.pas
└── FrostGlassPackage.dproj
/GlassPackage.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Spelt/Frost-Glass/HEAD/GlassPackage.res
--------------------------------------------------------------------------------
/misc/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Spelt/Frost-Glass/HEAD/misc/screenshot.png
--------------------------------------------------------------------------------
/FrostGlassPackage.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Spelt/Frost-Glass/HEAD/FrostGlassPackage.res
--------------------------------------------------------------------------------
/Demo multi device/Images/back7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Spelt/Frost-Glass/HEAD/Demo multi device/Images/back7.png
--------------------------------------------------------------------------------
/Demo multi device/FrostGlassDemo.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Spelt/Frost-Glass/HEAD/Demo multi device/FrostGlassDemo.res
--------------------------------------------------------------------------------
/Demo multi device/Entitlement.TemplateOSX32.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%appSandboxKeys%>
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Statistics.txt:
--------------------------------------------------------------------------------
1 |
2 | -release mode -
3 | PC(32) Android
4 | Blend + Blur 6 35-40
5 | Blur 5 28-35
6 |
7 |
8 |
9 | (Release)
10 | PC(32) Android
11 | Screenshot 1 6 **
12 | Copy 2 13 **
13 | blend 0 6 *
14 | blur 4 12
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Demo multi device/info.plist.TemplateOSX.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%VersionInfoPListKeys%>
6 | <%ExtraInfoPListKeys%>
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demo multi device/info.plist.TemplateiOS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%VersionInfoPListKeys%>
6 | <%ExtraInfoPListKeys%>
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demo multi device/FrostGlassDemo.dpr:
--------------------------------------------------------------------------------
1 | program FrostGlassDemo;
2 |
3 | uses
4 | System.StartUpCopy,
5 | FMX.Forms,
6 | Unit19 in 'Unit19.pas' {Form19};
7 |
8 | {$R *.res}
9 |
10 | begin
11 | Application.Initialize;
12 | Application.CreateForm(TForm19, Form19);
13 | Application.Run;
14 | end.
15 |
--------------------------------------------------------------------------------
/Demo multi device/Entitlement.TemplateiOS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%getTaskAllowKey%>
6 | <%applicationIdentifier%>
7 | <%pushNotificationKey%>
8 | <%keychainAccessGroups%>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/FrostGlassPackage.dpk:
--------------------------------------------------------------------------------
1 | package FrostGlassPackage;
2 |
3 | {$R *.res}
4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
5 | {$ALIGN 8}
6 | {$ASSERTIONS ON}
7 | {$BOOLEVAL OFF}
8 | {$DEBUGINFO OFF}
9 | {$EXTENDEDSYNTAX ON}
10 | {$IMPORTEDDATA ON}
11 | {$IOCHECKS ON}
12 | {$LOCALSYMBOLS ON}
13 | {$LONGSTRINGS ON}
14 | {$OPENSTRINGS ON}
15 | {$OPTIMIZATION OFF}
16 | {$OVERFLOWCHECKS OFF}
17 | {$RANGECHECKS OFF}
18 | {$REFERENCEINFO ON}
19 | {$SAFEDIVIDE OFF}
20 | {$STACKFRAMES ON}
21 | {$TYPEDADDRESS OFF}
22 | {$VARSTRINGCHECKS ON}
23 | {$WRITEABLECONST OFF}
24 | {$MINENUMSIZE 1}
25 | {$IMAGEBASE $400000}
26 | {$DEFINE DEBUG}
27 | {$ENDIF IMPLICITBUILDING}
28 | {$IMPLICITBUILD ON}
29 |
30 | requires
31 | fmx;
32 |
33 | contains
34 | FrostGlass in 'FrostGlass.pas';
35 |
36 | end.
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.dcu
2 | *.user
3 | *.aps
4 | *.pch
5 | *.vspscc
6 | *_i.c
7 | *_p.c
8 | *.ncb
9 | *.suo
10 | *.bak
11 | *.cache
12 | *.ilk
13 | *.log
14 | [Bb]in
15 | [Dd]ebug*/
16 | *.sbr
17 | obj/
18 | [Rr]elease*/
19 | _ReSharper*/
20 |
21 | #ignore thumbnails created by windows
22 | Thumbs.db
23 | #Ignore files build by Visual Studio
24 | *.obj
25 | *.exe
26 | *.pdb
27 | *.tlb
28 | *.tlh
29 | *.lib
30 | Win32/
31 | [Tt]est[Rr]esult*
32 |
33 |
34 | *.~*
35 | *.*~*
36 | *.stat
37 | *.*cache
38 |
39 |
40 |
41 | # Delphi compiler-generated binaries (safe to delete)
42 | *.exe
43 | *.dll
44 | *.bpl
45 | *.bpi
46 | *.dcp
47 | *.so
48 | *.apk
49 | *.drc
50 | *.map
51 | *.dres
52 | *.rsm
53 | *.tds
54 | *.dcu
55 | *.lib
56 |
57 | # Delphi autogenerated files (duplicated info)
58 | *.cfg
59 | *Resource.rc
60 |
61 | # Delphi local files (user-specific info)
62 | *.local
63 | *.identcache
64 | *.projdata
65 | *.tvsconfig
66 | *.dsk
67 |
68 | # Delphi history and backups
69 | __history/
70 | *.~*
71 |
72 | # Castalia statistics file
73 | *.stat
74 | *.*cache
75 | *.local
76 | *.identcache
77 | *.dsk
78 | *.dsk
79 |
--------------------------------------------------------------------------------
/Demo multi device/Unit19.vlb:
--------------------------------------------------------------------------------
1 | [Label2]
2 | Coordinates=385,10,53,58
3 |
4 | [DialogTitleFloatAnimation]
5 | Coordinates=296,1,162,36
6 |
7 | [FrostGlass1]
8 | Coordinates=300,120,88,102
9 | ExplicitSubNodes=BlurEnabled;CacheEnabled;FrostColor
10 |
11 | [RectDialog]
12 | Coordinates=75,300,78,36
13 |
14 | [Panel1]
15 | Coordinates=10,300,55,36
16 |
17 | [FloatAnimationScaleFrostDialog]
18 | Coordinates=296,166,199,36
19 |
20 | [FloatAnimationBlurBackground]
21 | Coordinates=296,221,192,36
22 |
23 | [GaussianBlurEffect1]
24 | Coordinates=315,276,132,36
25 |
26 | [Layout1]
27 | Coordinates=388,232,60,36
28 |
29 | [btnClear]
30 | Coordinates=139,232,63,58
31 |
32 | [Image1]
33 | Coordinates=243,10,57,58
34 |
35 | [RectColorLayer]
36 | Coordinates=274,232,104,36
37 |
38 | [lblTitle]
39 | Coordinates=212,232,52,58
40 |
41 | [Switch1]
42 | Coordinates=310,50,65,58
43 | Visible=True
44 |
45 | [lblHasBlur]
46 | Coordinates=159,10,74,58
47 | Visible=True
48 |
49 | []
50 | Coordinates=10,10,139,212
51 |
52 | [BindingsList1]
53 | Coordinates=168,87,91,36
54 |
55 | [Label1]
56 | Coordinates=145,80,53,58
57 |
58 | [SwitchCache]
59 | Coordinates=420,120,89,58
60 |
61 | [Layout2]
62 | Coordinates=302,331,60,36
63 |
64 | [Label3]
65 | Coordinates=168,157,53,58
66 |
67 | [ComboColorBox1]
68 | Coordinates=416,331,116,58
69 | Visible=True
70 |
71 | [SwitchBackBlur]
72 | Coordinates=30,241,104,58
73 |
74 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | #Delphi Frost Glass Control
2 |
3 | A little pet project ;-)
4 |
5 | It's a frost glass (blur+background coloring) Delphi Firemonkey component for use with all Firemonkey platforms. This component is just like the IOS 8/10 popup sound control and IOS Control Centre (bottom slide up) but with a bonus: you can give it a nice background color tint. I tested it on Delphi Berlin 10.1 update 2.
6 |
7 |
8 | ### About the project
9 | Performance is utterly important here, it was/is a challenge to get this component as smooth as possible. If you think you can shave off some milli seconds? Let me know!
10 |
11 | In some cases it is wise to use the build-in cache feature and somtimes it's not (like with changing backgrounds or with slide popins because you want continue updates). Anyway you can test for yourself via the included test project. Just resize the form at runtime to see the speed result in ms in the lisbox via the onTickEvent. I added a build-in TStopwatch to measure performance. If you click on the image a Frost Glass will popup.
12 |
13 | Example:
14 | 
15 |
16 | The inspiration for this component are the IOS 8/10 popup sound controls and IOS Control Centre (bottom slide up). Code inspiration comes from this stack overflow post: http://stackoverflow.com/questions/23898849/ios7-blurred-overlay-in-delphi-xe6
17 |
18 |
19 | ###Changes
20 | - v1 Date: 2017/03/05
21 | - Initial upload to github
22 |
23 |
24 | ###Features
25 | - Demo project
26 |
27 | Properties available
28 | - Blur (Gaussian) enabled
29 | - FrostColor
30 | - FrostColor Enabled
31 | - Caching
32 |
33 |
34 | Important inherited properties of TRectangle which will make it look more great.
35 | - Border functionality
36 | - Corner functionality
37 |
38 |
39 | ###Licence
40 | Frost Glass is released under the Apache 2.0 license. A copy of the Apache 2.0 license can be found here: http://www.apache.org/licenses/LICENSE-2.0
41 |
42 |
--------------------------------------------------------------------------------
/Demo multi device/AndroidManifest.template.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 | <%uses-permission%>
12 |
13 |
21 |
22 | <%application-meta-data%>
23 | <%services%>
24 |
26 |
30 |
31 |
33 |
34 |
35 |
36 |
37 |
38 | <%activity%>
39 | <%receivers%>
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/GlassProjectGroup.groupproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {84FF71E8-9560-4BFB-9645-4BA9964ECE68}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Default.Personality.12
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Demo multi device/Unit19.pas:
--------------------------------------------------------------------------------
1 | unit Unit19;
2 |
3 | interface
4 |
5 | uses
6 | System.SysUtils, System.Types, System.UITypes, System.Classes,
7 | System.Variants,
8 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ListBox,
9 | FMX.Layouts, FMX.Ani, FMX.StdCtrls, FMX.Objects,
10 | FMX.Controls.Presentation, FMX.Effects, FMX.Filter.Effects,
11 | FMX.MagnifierGlass, System.Diagnostics, FrostGlass, Data.Bind.EngExt,
12 | FMX.Bind.DBEngExt, System.Rtti, System.Bindings.Outputs, FMX.Bind.Editors,
13 | Data.Bind.Components, FMX.Colors, FMX.ScrollBox, FMX.Memo, FMX.Memo.Types;
14 |
15 | const
16 |
17 | BLUR_MAX: Single = 5;
18 | DURATION_ANIMATION = 100; // in milli seconds
19 |
20 | type
21 | TForm19 = class(TForm)
22 | lblTitle: TLabel;
23 | RectDialog: TRectangle;
24 | Label2: TLabel;
25 | DialogTitleFloatAnimation: TFloatAnimation;
26 | Image1: TImage;
27 | GaussianBlurEffect1: TGaussianBlurEffect;
28 | RectColorLayer: TRectangle;
29 | btnClear: TButton;
30 | FrostGlass1: TFrostGlass;
31 | Panel1: TPanel;
32 | Layout1: TLayout;
33 | FloatAnimationBlurBackground: TFloatAnimation;
34 | FloatAnimationScaleFrostDialog: TFloatAnimation;
35 | Switch1: TSwitch;
36 | lblHasBlur: TLabel;
37 | BindingsList1: TBindingsList;
38 | LinkControlToPropertyBlurEnabled: TLinkControlToProperty;
39 | SwitchCache: TSwitch;
40 | Label1: TLabel;
41 | LinkControlToPropertyCacheEnabled: TLinkControlToProperty;
42 | SwitchBackBlur: TSwitch;
43 | Label3: TLabel;
44 | Layout2: TLayout;
45 | ComboColorBox1: TComboColorBox;
46 | LinkControlToPropertyFrostColor: TLinkControlToProperty;
47 | Memo1: TMemo;
48 | procedure FormCreate(Sender: TObject);
49 | procedure Image1Click(Sender: TObject);
50 | procedure btnClearClick(Sender: TObject);
51 | procedure FloatAnimationBlurBackgroundFinish(Sender: TObject);
52 | procedure FloatAnimationScaleFrostDialogProcess(Sender: TObject);
53 | procedure FloatAnimationScaleFrostDialogFinish(Sender: TObject);
54 | private
55 | // FBlurEffect: TGaussianBlurEffect;
56 | FStopwatch: TStopwatch;
57 | OrgBitmap: TBitmap;
58 | FBusyAnim: Boolean;
59 | FOpacityAmount, FblurAmount: Single;
60 | FAnimationCount: Integer;
61 | procedure StartAnimation();
62 | procedure Clear();
63 | { Private declarations }
64 | public
65 | { Public declarations }
66 |
67 | end;
68 |
69 | var
70 | Form19: TForm19;
71 |
72 | implementation
73 |
74 | {$R *.fmx}
75 |
76 | procedure TForm19.btnClearClick(Sender: TObject);
77 | begin
78 | Clear();
79 | end;
80 |
81 | procedure TForm19.Clear();
82 | begin
83 | FrostGlass1.Visible := False;
84 | FAnimationCount := 0;
85 | FBusyAnim := False;
86 | FblurAmount := 0;
87 | GaussianBlurEffect1.BlurAmount := 0;
88 | RectColorLayer.Opacity := 0;
89 | lblTitle.Visible := False;
90 | lblTitle.Opacity := 0;
91 | end;
92 |
93 | procedure TForm19.FormCreate(Sender: TObject);
94 | begin
95 |
96 | //{$IFDEF DEBUG}
97 |
98 | FrostGlass1.OnTickChanged := procedure(progress: string)
99 | begin
100 | //if (ListBox1.Items.Count < 250) then
101 | memo1.lines.insert(0, progress);
102 | Memo1.CaretPosition.Create(0,0);
103 | end;
104 |
105 | //{$ENDIF}
106 |
107 | Clear();
108 |
109 | // {$IFDEF DEBUG}
110 | // Panel1.Visible := true;
111 | // {$ENDIF}
112 | end;
113 |
114 | procedure TForm19.Image1Click(Sender: TObject);
115 | begin
116 |
117 | if (OrgBitmap <> nil) then
118 | Image1.Bitmap.Assign(OrgBitmap);
119 |
120 | RectColorLayer.Opacity := 0;
121 | Memo1.lines.Clear();
122 | FAnimationCount := 0;
123 | FOpacityAmount := 0;
124 | FBusyAnim := False;
125 | FblurAmount := 0;
126 | Application.ProcessMessages();
127 |
128 | StartAnimation();
129 | end;
130 |
131 | procedure TForm19.StartAnimation();
132 | begin
133 | lblTitle.Opacity := 0;
134 | lblTitle.Visible := False;
135 | FrostGlass1.Visible := true;
136 | FStopwatch := TStopwatch.StartNew();
137 | if SwitchBackBlur.IsChecked then
138 | FloatAnimationBlurBackground.Start();
139 |
140 | FloatAnimationScaleFrostDialog.Start();
141 | end;
142 |
143 | procedure TForm19.FloatAnimationBlurBackgroundFinish(Sender: TObject);
144 | begin
145 | FStopwatch.Stop();
146 | end;
147 |
148 | procedure TForm19.FloatAnimationScaleFrostDialogFinish(Sender: TObject);
149 | begin
150 | lblTitle.Visible := true;
151 | DialogTitleFloatAnimation.Start();
152 | end;
153 |
154 | procedure TForm19.FloatAnimationScaleFrostDialogProcess(Sender: TObject);
155 | begin
156 | FrostGlass1.Scale.Y := FrostGlass1.Scale.X;
157 | FrostGlass1.RecalcSize();
158 | end;
159 |
160 | end.
161 |
--------------------------------------------------------------------------------
/FrostGlass.pas:
--------------------------------------------------------------------------------
1 | unit FrostGlass;
2 |
3 | interface
4 |
5 | uses System.SysUtils, System.Classes, System.UITypes, FMX.Types, FMX.Controls,
6 | FMX.Objects, FMX.Graphics, FMX.Filter.Effects, FMX.Forms, System.Types, Math,
7 | System.Diagnostics;
8 |
9 | type
10 |
11 | TRGB32 = record
12 | B, G, R, A: Byte;
13 | end;
14 |
15 | TRGB32Array = array [0 .. 4096] of TRGB32;
16 | PRGB32Array = ^TRGB32Array;
17 |
18 | TFrostGlass = class(TRectangle)
19 | private
20 | FIsPainting, FCacheEnabled, FFrostEnabled, FBlurEnabled: Boolean;
21 | FBlurEffect: TGaussianBlurEffect;
22 | FFrostColor: TAlphaColor;
23 |
24 | FCachedBitmap, FParentScreenshotBitmap: TBitmap;
25 |
26 | procedure SetBlurAmount(Value: Single);
27 | procedure SetHasFrostColor(Value: Boolean);
28 | procedure SetHasBlur(Value: Boolean);
29 | procedure SetHasCache(Value: Boolean);
30 | procedure SetFrostColor(Value: TAlphaColor);
31 |
32 | function GetBlurAmount: Single;
33 | procedure SetEffects(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
34 |
35 | public
36 | OnTickChanged: TProc;
37 | constructor Create(AOwner: TComponent); override;
38 | destructor Destroy; override;
39 | published
40 |
41 | property FrostBlur: Single read GetBlurAmount write SetBlurAmount;
42 | property FrostColorEnabled: Boolean read FFrostEnabled
43 | write SetHasFrostColor;
44 |
45 | property BlurEnabled: Boolean read FBlurEnabled write SetHasBlur;
46 | property CacheEnabled: Boolean read FCacheEnabled write SetHasCache;
47 |
48 | property FrostColor: TAlphaColor read FFrostColor write SetFrostColor;
49 |
50 | property Align;
51 | property Position;
52 | property Width;
53 | property Height;
54 | property Size;
55 | property Visible;
56 |
57 | property Anchors;
58 | property ClipChildren default False;
59 | property ClipParent default False;
60 | property Corners;
61 | property CornerType;
62 | property Cursor default crDefault;
63 | property DragMode default TDragMode.dmManual;
64 | property EnableDragHighlight default True;
65 | property Enabled default True;
66 |
67 | property Locked default False;
68 | property HitTest default True;
69 | property Padding;
70 | property Opacity;
71 | property Margins;
72 | property PopupMenu;
73 | property RotationAngle;
74 | property RotationCenter;
75 | property Scale;
76 | property Sides;
77 | property Stroke;
78 | property XRadius;
79 | property YRadius;
80 | { Drag and Drop events }
81 | property OnDragEnter;
82 | property OnDragLeave;
83 | property OnDragOver;
84 | property OnDragDrop;
85 | property OnDragEnd;
86 | { Mouse events }
87 | property OnClick;
88 | property OnDblClick;
89 |
90 | property OnMouseDown;
91 | property OnMouseMove;
92 | property OnMouseUp;
93 | property OnMouseWheel;
94 | property OnMouseEnter;
95 | property OnMouseLeave;
96 |
97 | property OnPainting;
98 | property OnPaint;
99 | property OnResize;
100 |
101 | end;
102 |
103 | procedure Register;
104 |
105 | implementation
106 |
107 | { TGlass }
108 |
109 | constructor TFrostGlass.Create(AOwner: TComponent);
110 | begin
111 | inherited Create(AOwner);
112 | Width := 200;
113 | Height := 200;
114 |
115 | Fill.Kind := TBrushKind.Bitmap;
116 | Fill.Bitmap.WrapMode := TWrapmode.TileOriginal;
117 |
118 | FIsPainting := False;
119 | FCacheEnabled := True;
120 | FBlurEnabled := True;
121 | FFrostEnabled := True; // this crashes, something with componentstate
122 | FFrostColor := TAlphaColors.White;
123 |
124 | // Create parent background
125 | FParentScreenshotBitmap := TBitmap.Create(0, 0);
126 | FCachedBitmap := TBitmap.Create(0, 0);
127 |
128 | // Create blur
129 | FBlurEffect := TGaussianBlurEffect.Create(self);
130 | FBlurEffect.BlurAmount := 0.6;
131 |
132 | OnPaint := SetEffects;
133 |
134 | end;
135 |
136 | destructor TFrostGlass.Destroy;
137 | begin
138 | FBlurEffect.Free;
139 | FParentScreenshotBitmap.Free;
140 | FCachedBitmap.Free;
141 |
142 | inherited Destroy;
143 | end;
144 |
145 | procedure TFrostGlass.SetBlurAmount(Value: Single);
146 | begin
147 | if FBlurEffect.BlurAmount = Value then
148 | Exit;
149 |
150 | FBlurEffect.BlurAmount := Value;
151 | Repaint();
152 | end;
153 |
154 | function TFrostGlass.GetBlurAmount(): Single;
155 | begin
156 | Result := FBlurEffect.BlurAmount;
157 | end;
158 |
159 | procedure TFrostGlass.SetHasFrostColor(Value: Boolean);
160 | begin
161 | if FFrostEnabled = Value then
162 | Exit;
163 |
164 | FFrostEnabled := Value;
165 | Repaint();
166 | end;
167 |
168 | procedure TFrostGlass.SetHasBlur(Value: Boolean);
169 | begin
170 | if FBlurEnabled = Value then
171 | Exit;
172 |
173 | FBlurEnabled := Value;
174 | Repaint();
175 | end;
176 |
177 | procedure TFrostGlass.SetHasCache(Value: Boolean);
178 | begin
179 | if FCacheEnabled = Value then
180 | Exit;
181 |
182 | FCacheEnabled := Value;
183 | Repaint();
184 | end;
185 |
186 | procedure TFrostGlass.SetFrostColor(Value: TAlphaColor);
187 | begin
188 | if Value = FFrostColor then
189 | Exit;
190 |
191 | FFrostColor := Value;
192 | Repaint;
193 | end;
194 |
195 | procedure TFrostGlass.SetEffects(Sender: TObject; Canvas: TCanvas;
196 | const ARect: TRectF);
197 | var
198 | ParentWidth: Single;
199 | ParentHeight: Single;
200 | RectA: TRect;
201 | bmp: TBitmap;
202 | stopWatch: TStopwatch;
203 | stopwatchResult: string;
204 |
205 | procedure SetStopWatch(s: string; restart: Boolean = True);
206 | begin
207 |
208 | if (not Assigned(OnTickChanged)) then
209 | begin
210 | Exit;
211 | end;
212 |
213 | stopWatch.Stop;
214 | stopwatchResult := stopwatchResult + s + ' ' +
215 | stopWatch.ElapsedMilliseconds.ToString() + ' ';
216 |
217 | if restart then
218 | stopWatch.Start();
219 |
220 | end;
221 |
222 | // Own blending sub cause build in blending does not work with android and ios
223 | procedure BlendBitmap(BitmapA: TBitmap);
224 | var
225 | x, y: Integer;
226 | currentData: TBitmapData;
227 | A, R, G, B: Byte;
228 | a2, r2, g2, b2: Byte;
229 | Pixels: PRGB32Array;
230 |
231 | begin
232 |
233 | a2 := TAlphaColorRec(FFrostColor).A;
234 | r2 := TAlphaColorRec(FFrostColor).R;
235 | g2 := TAlphaColorRec(FFrostColor).G;
236 | b2 := TAlphaColorRec(FFrostColor).B;
237 |
238 | if BitmapA.Map(TMapAccess.ReadWrite, currentData) then
239 | try
240 | for y := 0 to BitmapA.Height - 1 do
241 | begin
242 |
243 | Pixels := currentData.GetScanline(y);
244 | for x := 0 to BitmapA.Width - 1 do
245 | begin
246 | A := Pixels[x].A;
247 | R := Pixels[x].R;
248 | G := Pixels[x].G;
249 | B := Pixels[x].B;
250 |
251 | A := (A + a2) div 2;
252 | R := (R + r2) div 2;
253 | G := (G + g2) div 2;
254 | B := (B + b2) div 2;
255 |
256 | Pixels[x].A := A;
257 | Pixels[x].R := R;
258 | Pixels[x].G := G;
259 | Pixels[x].B := B;
260 | end;
261 | end;
262 | finally
263 | BitmapA.Unmap(currentData);
264 | end;
265 |
266 | end;
267 |
268 | procedure DefineParentSize;
269 | begin
270 | ParentWidth := 0;
271 | ParentHeight := 0;
272 | if Parent is TCustomForm then
273 | begin
274 | ParentWidth := (Parent as TCustomForm).ClientWidth;
275 | ParentHeight := (Parent as TCustomForm).ClientHeight;
276 | end;
277 | if Parent is TControl then
278 | begin
279 | ParentWidth := (Parent as TControl).Width;
280 | ParentHeight := (Parent as TControl).Height;
281 | end;
282 | end;
283 |
284 | function IsBitmapSizeChanged(ABitmap: TBitmap;
285 | const ANewWidth, ANewHeight: Single): Boolean;
286 | begin
287 | Result := not SameValue(ANewWidth * ABitmap.BitmapScale, ABitmap.Width) or
288 | not SameValue(ANewHeight * ABitmap.BitmapScale, ABitmap.Height);
289 | end;
290 |
291 | procedure MakeParentScreenshot;
292 | var
293 | Form: TCommonCustomForm;
294 | Child: TFmxObject;
295 | ParentControl: TControl;
296 | ClipRects: TClipRects;
297 |
298 | begin
299 | ClipRects := [TRectF.Create(BoundsRect)];
300 | if FParentScreenshotBitmap.Canvas.BeginScene(@ClipRects) then
301 |
302 | try
303 | FDisablePaint := True;
304 | if Parent is TCommonCustomForm then
305 | begin
306 | Form := Parent as TCommonCustomForm;
307 | for Child in Form.Children do
308 | if (Child is TControl) and (Child as TControl).Visible then
309 | begin
310 | ParentControl := Child as TControl;
311 | ParentControl.PaintTo(FParentScreenshotBitmap.Canvas,
312 | ParentControl.BoundsRect);
313 | end;
314 | end
315 | else
316 | (Parent as TControl).PaintTo(FParentScreenshotBitmap.Canvas,
317 | RectF(0, 0, ParentWidth, ParentHeight));
318 |
319 | finally
320 | FDisablePaint := False;
321 | FParentScreenshotBitmap.Canvas.EndScene;
322 | end;
323 |
324 | end;
325 |
326 | begin
327 |
328 | if FIsPainting then
329 | Exit;
330 | FIsPainting := True;
331 |
332 | if (Assigned(OnTickChanged)) then
333 | begin
334 | stopWatch := TStopwatch.StartNew();
335 | end;
336 |
337 | // Make screenshot of Parent control
338 | DefineParentSize;
339 | if IsBitmapSizeChanged(FParentScreenshotBitmap, ParentWidth, ParentHeight)
340 | then
341 | FParentScreenshotBitmap.SetSize(round(ParentWidth), round(ParentHeight));
342 |
343 | // Apply glass effect
344 | Canvas.BeginScene;
345 | try
346 |
347 | if (FCacheEnabled and (FCachedBitmap.Width <> 0)) then
348 | begin
349 | Fill.Bitmap.Bitmap := FCachedBitmap;
350 | Exit;
351 | end;
352 |
353 | MakeParentScreenshot;
354 | SetStopWatch('Sht');
355 |
356 | RectA := BoundsRect.round;
357 | bmp := TBitmap.Create(RectA.Width, RectA.Height);
358 | try
359 | bmp.CopyFromBitmap(FParentScreenshotBitmap, RectA, 0, 0);
360 |
361 | SetStopWatch('Cpy');
362 |
363 | if (FFrostEnabled) then
364 | begin
365 | BlendBitmap(bmp);
366 | SetStopWatch('Blnd');
367 | end;
368 |
369 | if (FBlurEnabled) then
370 | begin
371 | FBlurEffect.ProcessEffect(Canvas, bmp, FBlurEffect.BlurAmount);
372 | SetStopWatch('blr');
373 | end;
374 |
375 | Fill.Bitmap.Bitmap := bmp;
376 | if (FCacheEnabled) then
377 | FCachedBitmap.Assign(bmp);
378 |
379 | finally
380 | bmp.Free;
381 | end;
382 |
383 | finally
384 | Canvas.EndScene;
385 |
386 | SetStopWatch('final', False);
387 | if (Assigned(OnTickChanged)) then
388 | begin
389 | OnTickChanged(stopwatchResult);
390 | end;
391 |
392 | FIsPainting := False;
393 |
394 | end;
395 |
396 | end;
397 |
398 | procedure Register;
399 | begin
400 | RegisterComponents('FrostGlass', [TFrostGlass]);
401 | end;
402 |
403 | end.
404 |
--------------------------------------------------------------------------------
/FrostGlassPackage.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {D65D66FD-BB01-48B0-AD8D-6642E3EDFCD3}
4 | FrostGlassPackage.dpk
5 | 18.2
6 | FMX
7 | True
8 | Debug
9 | Win64
10 | 1119
11 | Package
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Base
39 | true
40 |
41 |
42 | true
43 | Base
44 | true
45 |
46 |
47 | true
48 | Base
49 | true
50 |
51 |
52 | true
53 | Base
54 | true
55 |
56 |
57 | true
58 | Cfg_1
59 | true
60 | true
61 |
62 |
63 | true
64 | Cfg_1
65 | true
66 | true
67 |
68 |
69 | true
70 | Base
71 | true
72 |
73 |
74 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
75 | FrostGlassPackage
76 | true
77 | true
78 | All
79 | .\$(Platform)\$(Config)
80 | false
81 | false
82 | false
83 | false
84 | false
85 |
86 |
87 | 1
88 | rtl;fmx;$(DCC_UsePackage)
89 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=
90 | android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar
91 | None
92 | Debug
93 |
94 |
95 | rtl;fmx;$(DCC_UsePackage)
96 | $(MSBuildProjectName)
97 | true
98 | iPhoneAndiPad
99 | None
100 | Debug
101 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
102 |
103 |
104 | rtl;fmx;$(DCC_UsePackage)
105 | $(MSBuildProjectName)
106 | true
107 | iPhoneAndiPad
108 | None
109 | Debug
110 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
111 |
112 |
113 | rtl;fmx;$(DCC_UsePackage)
114 | true
115 | iPhoneAndiPad
116 | None
117 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
118 |
119 |
120 | rtl;fmx;$(DCC_UsePackage)
121 | CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts
122 | Debug
123 |
124 |
125 | rtl;fmx;$(DCC_UsePackage)
126 | true
127 | 1033
128 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)
129 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
130 |
131 |
132 | rtl;fmx;$(DCC_UsePackage)
133 | true
134 | 1033
135 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)
136 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
137 |
138 |
139 | DEBUG;$(DCC_Define)
140 | true
141 | false
142 | true
143 | true
144 | true
145 |
146 |
147 | .\$(Platform)\$(Config)
148 | 1033
149 | true
150 | false
151 |
152 |
153 | 1033
154 | true
155 |
156 |
157 | false
158 | RELEASE;$(DCC_Define)
159 | 0
160 | 0
161 |
162 |
163 |
164 | MainSource
165 |
166 |
167 |
168 |
169 | Cfg_2
170 | Base
171 |
172 |
173 | Base
174 |
175 |
176 | Cfg_1
177 | Base
178 |
179 |
180 |
181 | Delphi.Personality.12
182 | Package
183 |
184 |
185 |
186 | FrostGlassPackage.dpk
187 |
188 |
189 | Microsoft Office 2000 Sample Automation Server Wrapper Components
190 | Microsoft Office XP Sample Automation Server Wrapper Components
191 |
192 |
193 |
194 |
195 |
196 | true
197 |
198 |
199 |
200 |
201 | true
202 |
203 |
204 |
205 |
206 | true
207 |
208 |
209 |
210 |
211 | true
212 |
213 |
214 |
215 |
216 | FrostGlassPackage.bpl
217 | true
218 |
219 |
220 |
221 |
222 | 0
223 | .dll;.bpl
224 |
225 |
226 | 1
227 | .dylib
228 |
229 |
230 |
231 |
232 | Contents\Resources
233 | 1
234 |
235 |
236 |
237 |
238 | classes
239 | 1
240 |
241 |
242 |
243 |
244 | Contents\MacOS
245 | 0
246 |
247 |
248 | 1
249 |
250 |
251 |
252 |
253 | 1
254 |
255 |
256 | 1
257 |
258 |
259 | 1
260 |
261 |
262 |
263 |
264 | res\drawable-xxhdpi
265 | 1
266 |
267 |
268 |
269 |
270 | library\lib\mips
271 | 1
272 |
273 |
274 |
275 |
276 | 1
277 |
278 |
279 | 1
280 |
281 |
282 | 0
283 |
284 |
285 | 1
286 |
287 |
288 | 1
289 |
290 |
291 | library\lib\armeabi-v7a
292 | 1
293 |
294 |
295 | 1
296 |
297 |
298 |
299 |
300 | 0
301 |
302 |
303 | 1
304 | .framework
305 |
306 |
307 |
308 |
309 | 1
310 |
311 |
312 | 1
313 |
314 |
315 |
316 |
317 | 1
318 |
319 |
320 | 1
321 |
322 |
323 | 1
324 |
325 |
326 |
327 |
328 | 1
329 |
330 |
331 | 1
332 |
333 |
334 | 1
335 |
336 |
337 |
338 |
339 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
340 | 1
341 |
342 |
343 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
344 | 1
345 |
346 |
347 |
348 |
349 | 1
350 |
351 |
352 | 1
353 |
354 |
355 | 1
356 |
357 |
358 |
359 |
360 |
361 | library\lib\armeabi
362 | 1
363 |
364 |
365 |
366 |
367 | 0
368 |
369 |
370 | 1
371 |
372 |
373 | 1
374 |
375 |
376 |
377 |
378 | 1
379 |
380 |
381 | 1
382 |
383 |
384 | 1
385 |
386 |
387 |
388 |
389 | res\drawable-normal
390 | 1
391 |
392 |
393 |
394 |
395 | res\drawable-xhdpi
396 | 1
397 |
398 |
399 |
400 |
401 | res\drawable-large
402 | 1
403 |
404 |
405 |
406 |
407 | 1
408 |
409 |
410 | 1
411 |
412 |
413 | 1
414 |
415 |
416 |
417 |
418 | Assets
419 | 1
420 |
421 |
422 | Assets
423 | 1
424 |
425 |
426 |
427 |
428 |
429 | res\drawable-hdpi
430 | 1
431 |
432 |
433 |
434 |
435 | library\lib\armeabi-v7a
436 | 1
437 |
438 |
439 |
440 |
441 |
442 |
443 | Assets
444 | 1
445 |
446 |
447 | Assets
448 | 1
449 |
450 |
451 |
452 |
453 | 1
454 |
455 |
456 | 1
457 |
458 |
459 | 1
460 |
461 |
462 |
463 |
464 | res\values
465 | 1
466 |
467 |
468 |
469 |
470 | res\drawable-small
471 | 1
472 |
473 |
474 |
475 |
476 | res\drawable
477 | 1
478 |
479 |
480 |
481 |
482 | 1
483 |
484 |
485 | 1
486 |
487 |
488 | 1
489 |
490 |
491 |
492 |
493 | 1
494 |
495 |
496 |
497 |
498 | res\drawable
499 | 1
500 |
501 |
502 |
503 |
504 | 0
505 |
506 |
507 | 0
508 |
509 |
510 | 0
511 |
512 |
513 | 0
514 |
515 |
516 | 0
517 |
518 |
519 | 0
520 |
521 |
522 |
523 |
524 | library\lib\armeabi-v7a
525 | 1
526 |
527 |
528 |
529 |
530 | 0
531 | .bpl
532 |
533 |
534 | 1
535 | .dylib
536 |
537 |
538 | 1
539 | .dylib
540 |
541 |
542 | 1
543 | .dylib
544 |
545 |
546 | 1
547 | .dylib
548 |
549 |
550 |
551 |
552 | res\drawable-mdpi
553 | 1
554 |
555 |
556 |
557 |
558 | res\drawable-xlarge
559 | 1
560 |
561 |
562 |
563 |
564 | res\drawable-ldpi
565 | 1
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 | True
580 | True
581 | True
582 | True
583 | True
584 | True
585 | True
586 |
587 |
588 | 12
589 |
590 |
591 |
592 |
593 |
594 |
--------------------------------------------------------------------------------
/Demo multi device/FrostGlassDemo.deployproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 12
5 |
6 |
7 |
8 | e566dde52f481c6273b88012d6a074a918c2fdfa
9 | e566dde52f481c6273b88012d6a074a918c2fdfa
10 | AAC11FB3-B1E6-4045-925B-73EC8359FFB5
11 |
12 |
13 |
14 |
15 | FrostGlassDemo.app\
16 | FM_ApplicationIcon_57x57.png
17 | iPhone_AppIcon57
18 | 0
19 |
20 |
21 | True
22 |
23 |
24 | FrostGlassDemo.app\
25 | FM_ApplicationIcon_180x180.png
26 | iPhone_AppIcon180
27 | 0
28 |
29 |
30 | True
31 |
32 |
33 | FrostGlassDemo.app\
34 | FM_SpotlightSearchIcon_80x80.png
35 | iPhone_Spotlight80
36 | 0
37 |
38 |
39 | True
40 |
41 |
42 | FrostGlassDemo.app\
43 | FM_ApplicationIcon_114x114.png
44 | iPhone_AppIcon114
45 | 0
46 |
47 |
48 | True
49 |
50 |
51 | FrostGlassDemo.app\
52 | Default-736h@3x.png
53 | iPhone_Launch1242
54 | 0
55 |
56 |
57 | True
58 |
59 |
60 | FrostGlassDemo.app\
61 | ResourceRules.plist
62 | ProjectiOSDeviceResourceRules
63 | 1
64 |
65 |
66 | True
67 |
68 |
69 | FrostGlassDemo.app\
70 | Default-Portrait@2x.png
71 | iPad_Launch1536
72 | 1
73 |
74 |
75 | True
76 |
77 |
78 | FrostGlassDemo.app\
79 | Default~ipad.png
80 | iPad_Launch768
81 | 1
82 |
83 |
84 | True
85 |
86 |
87 | FrostGlassDemo.app\
88 | Default-Landscape@2x~ipad.png
89 | iPad_Launch2048x1536
90 | 0
91 |
92 |
93 | True
94 |
95 |
96 | FrostGlassDemo.app\
97 | Default-Landscape~ipad.png
98 | iPad_Launch1024x768
99 | 0
100 |
101 |
102 | True
103 |
104 |
105 | FrostGlassDemo.app\
106 | Default-Portrait~ipad.png
107 | iPad_Launch768x1024
108 | 0
109 |
110 |
111 | True
112 |
113 |
114 | FrostGlassDemo.app\
115 | FM_ApplicationIcon_60x60.png
116 | iPhone_AppIcon60
117 | 0
118 |
119 |
120 | True
121 |
122 |
123 | FrostGlassDemo.app\
124 | FM_SpotlightSearchIcon_80x80.png
125 | iPad_SpotLight80
126 | 0
127 |
128 |
129 | True
130 |
131 |
132 | FrostGlassDemo.app\
133 | FM_ApplicationIcon_76x76.png
134 | iPad_AppIcon76
135 | 0
136 |
137 |
138 | True
139 |
140 |
141 | FrostGlassDemo.app\
142 | Default-667h@2x.png
143 | iPhone_Launch750
144 | 0
145 |
146 |
147 | True
148 |
149 |
150 | FrostGlassDemo.app\
151 | FrostGlassDemo
152 | ProjectOutput
153 | 1
154 |
155 |
156 | True
157 | True
158 |
159 |
160 | FrostGlassDemo.app\
161 | FM_SpotlightSearchIcon_29x29.png
162 | iPhone_Spotlight29
163 | 0
164 |
165 |
166 | True
167 |
168 |
169 | FrostGlassDemo.app\
170 | Default-Landscape-736h@3x.png
171 | iPhone_Launch2208
172 | 0
173 |
174 |
175 | True
176 |
177 |
178 | FrostGlassDemo.app\
179 | FM_SpotlightSearchIcon_58x58.png
180 | iPhone_Spotlight58
181 | 0
182 |
183 |
184 | True
185 |
186 |
187 | FrostGlassDemo.app\
188 | Default-Portrait@2x~ipad.png
189 | iPad_Launch1536x2048
190 | 0
191 |
192 |
193 | True
194 |
195 |
196 | FrostGlassDemo.app\..\
197 | FrostGlassDemo.entitlements
198 | ProjectiOSEntitlements
199 | 1
200 |
201 |
202 | True
203 |
204 |
205 | FrostGlassDemo.app\
206 | FM_SettingIcon_29x29.png
207 | iPad_Setting29
208 | 0
209 |
210 |
211 | True
212 |
213 |
214 | FrostGlassDemo.app\
215 | Default-Landscape@2x.png
216 | iPad_Launch2048
217 | 1
218 |
219 |
220 | True
221 |
222 |
223 | FrostGlassDemo.app\
224 | FM_ApplicationIcon_144x144.png
225 | iPad_AppIcon144
226 | 0
227 |
228 |
229 | True
230 |
231 |
232 | FrostGlassDemo.app\
233 | FM_SpotlightSearchIcon_40x40.png
234 | iPhone_Spotlight40
235 | 0
236 |
237 |
238 | True
239 |
240 |
241 | FrostGlassDemo.app\
242 | FM_SettingIcon_58x58.png
243 | iPad_Setting58
244 | 0
245 |
246 |
247 | True
248 |
249 |
250 | FrostGlassDemo.app\
251 | FM_ApplicationIcon_87x87.png
252 | iPhone_AppIcon87
253 | 0
254 |
255 |
256 | True
257 |
258 |
259 | FrostGlassDemo.app\
260 | Default-568h@2x.png
261 | iPhone_Launch640x1136
262 | 1
263 |
264 |
265 | True
266 |
267 |
268 | FrostGlassDemo.app\
269 | FM_ApplicationIcon_120x120.png
270 | iPhone_AppIcon120
271 | 0
272 |
273 |
274 | True
275 |
276 |
277 | FrostGlassDemo.app\
278 | Default-Landscape.png
279 | iPad_Launch1024
280 | 1
281 |
282 |
283 | True
284 |
285 |
286 | FrostGlassDemo.app\
287 | FM_SpotlightSearchIcon_50x50.png
288 | iPad_SpotLight50
289 | 0
290 |
291 |
292 | True
293 |
294 |
295 | FrostGlassDemo.app\
296 | Default.png
297 | iPhone_Launch320
298 | 1
299 |
300 |
301 | True
302 |
303 |
304 | FrostGlassDemo.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\
305 | FrostGlassDemo
306 | ProjectiOSDeviceDebug
307 | 1
308 |
309 |
310 | True
311 |
312 |
313 | FrostGlassDemo.app\
314 | FM_ApplicationIcon_152x152.png
315 | iPad_AppIcon152
316 | 0
317 |
318 |
319 | True
320 |
321 |
322 | FrostGlassDemo.app\
323 | FM_ApplicationIcon_72x72.png
324 | iPad_AppIcon72
325 | 0
326 |
327 |
328 | True
329 |
330 |
331 | FrostGlassDemo.app\
332 | FM_SpotlightSearchIcon_40x40.png
333 | iPad_SpotLight40
334 | 0
335 |
336 |
337 | True
338 |
339 |
340 | FrostGlassDemo.app\
341 | Info.plist
342 | ProjectiOSInfoPList
343 | 1
344 |
345 |
346 | True
347 |
348 |
349 | FrostGlassDemo.app\
350 | FM_SpotlightSearchIcon_100x100.png
351 | iPad_SpotLight100
352 | 0
353 |
354 |
355 | True
356 |
357 |
358 | FrostGlassDemo.app\
359 | Default@2x.png
360 | iPhone_Launch640
361 | 1
362 |
363 |
364 | True
365 |
366 |
367 |
368 |
369 | FrostGlassDemo.app\
370 | FM_ApplicationIcon_87x87.png
371 | iPhone_AppIcon87
372 | 0
373 |
374 |
375 | True
376 |
377 |
378 | FrostGlassDemo.app\
379 | FM_SpotlightSearchIcon_50x50.png
380 | iPad_SpotLight50
381 | 0
382 |
383 |
384 | True
385 |
386 |
387 | FrostGlassDemo.app\
388 | ResourceRules.plist
389 | ProjectiOSDeviceResourceRules
390 | 1
391 |
392 |
393 | True
394 |
395 |
396 | FrostGlassDemo.app\
397 | Default-Portrait@2x~ipad.png
398 | iPad_Launch1536x2048
399 | 0
400 |
401 |
402 | True
403 |
404 |
405 | FrostGlassDemo.app\
406 | Default-Portrait@2x.png
407 | iPad_Launch1536
408 | 1
409 |
410 |
411 | True
412 |
413 |
414 | FrostGlassDemo.app\
415 | FM_SettingIcon_58x58.png
416 | iPad_Setting58
417 | 0
418 |
419 |
420 | True
421 |
422 |
423 | FrostGlassDemo.app\
424 | FM_SettingIcon_29x29.png
425 | iPad_Setting29
426 | 0
427 |
428 |
429 | True
430 |
431 |
432 | FrostGlassDemo.app\
433 | FM_SpotlightSearchIcon_80x80.png
434 | iPhone_Spotlight80
435 | 0
436 |
437 |
438 | True
439 |
440 |
441 | FrostGlassDemo.app\
442 | Default-Landscape.png
443 | iPad_Launch1024
444 | 1
445 |
446 |
447 | True
448 |
449 |
450 | FrostGlassDemo.app\
451 | FrostGlassDemo
452 | ProjectOutput
453 | 1
454 |
455 |
456 | True
457 | True
458 |
459 |
460 | FrostGlassDemo.app\
461 | FM_ApplicationIcon_76x76.png
462 | iPad_AppIcon76
463 | 0
464 |
465 |
466 | True
467 |
468 |
469 | FrostGlassDemo.app\
470 | Default-667h@2x.png
471 | iPhone_Launch750
472 | 0
473 |
474 |
475 | True
476 |
477 |
478 | FrostGlassDemo.app\
479 | Default-667h@2x.png
480 | iPhone_Launch750
481 | 0
482 |
483 |
484 | True
485 |
486 |
487 | FrostGlassDemo.app\..\
488 | FrostGlassDemo.entitlements
489 | ProjectiOSEntitlements
490 | 1
491 |
492 |
493 | True
494 |
495 |
496 | FrostGlassDemo.app\
497 | FM_ApplicationIcon_180x180.png
498 | iPhone_AppIcon180
499 | 0
500 |
501 |
502 | True
503 |
504 |
505 | FrostGlassDemo.app\
506 | FM_SpotlightSearchIcon_40x40.png
507 | iPad_SpotLight40
508 | 0
509 |
510 |
511 | True
512 |
513 |
514 | FrostGlassDemo.app\
515 | FM_SpotlightSearchIcon_80x80.png
516 | iPad_SpotLight80
517 | 0
518 |
519 |
520 | True
521 |
522 |
523 | FrostGlassDemo.app\
524 | Info.plist
525 | ProjectiOSInfoPList
526 | 1
527 |
528 |
529 | True
530 |
531 |
532 | FrostGlassDemo.app\
533 | Default-Landscape@2x.png
534 | iPad_Launch2048
535 | 1
536 |
537 |
538 | True
539 |
540 |
541 | FrostGlassDemo.app\
542 | FM_SpotlightSearchIcon_40x40.png
543 | iPhone_Spotlight40
544 | 0
545 |
546 |
547 | True
548 |
549 |
550 | FrostGlassDemo.app\
551 | FM_SpotlightSearchIcon_80x80.png
552 | iPhone_Spotlight80
553 | 0
554 |
555 |
556 | True
557 |
558 |
559 | FrostGlassDemo.app\
560 | Default-736h@3x.png
561 | iPhone_Launch1242
562 | 0
563 |
564 |
565 | True
566 |
567 |
568 | FrostGlassDemo.app\
569 | Default-Landscape~ipad.png
570 | iPad_Launch1024x768
571 | 0
572 |
573 |
574 | True
575 |
576 |
577 | FrostGlassDemo.app\
578 | Default.png
579 | iPhone_Launch320
580 | 1
581 |
582 |
583 | True
584 |
585 |
586 | FrostGlassDemo.app\
587 | FM_ApplicationIcon_144x144.png
588 | iPad_AppIcon144
589 | 0
590 |
591 |
592 | True
593 |
594 |
595 | FrostGlassDemo.app\
596 | Default-Portrait@2x.png
597 | iPad_Launch1536
598 | 1
599 |
600 |
601 | True
602 |
603 |
604 | FrostGlassDemo.app\..\
605 | FrostGlassDemo.entitlements
606 | ProjectiOSEntitlements
607 | 1
608 |
609 |
610 | True
611 |
612 |
613 | FrostGlassDemo.app\
614 | FM_ApplicationIcon_144x144.png
615 | iPad_AppIcon144
616 | 0
617 |
618 |
619 | True
620 |
621 |
622 | FrostGlassDemo.app\
623 | FrostGlassDemo
624 | ProjectOutput
625 | 1
626 |
627 |
628 | True
629 | True
630 |
631 |
632 | FrostGlassDemo.app\
633 | Default-Landscape@2x~ipad.png
634 | iPad_Launch2048x1536
635 | 0
636 |
637 |
638 | True
639 |
640 |
641 | FrostGlassDemo.app\
642 | Default-Landscape-736h@3x.png
643 | iPhone_Launch2208
644 | 0
645 |
646 |
647 | True
648 |
649 |
650 | FrostGlassDemo.app\
651 | FM_ApplicationIcon_87x87.png
652 | iPhone_AppIcon87
653 | 0
654 |
655 |
656 | True
657 |
658 |
659 | FrostGlassDemo.app\
660 | FM_SpotlightSearchIcon_58x58.png
661 | iPhone_Spotlight58
662 | 0
663 |
664 |
665 | True
666 |
667 |
668 | FrostGlassDemo.app\
669 | FM_ApplicationIcon_180x180.png
670 | iPhone_AppIcon180
671 | 0
672 |
673 |
674 | True
675 |
676 |
677 | FrostGlassDemo.app\
678 | FM_ApplicationIcon_60x60.png
679 | iPhone_AppIcon60
680 | 0
681 |
682 |
683 | True
684 |
685 |
686 | FrostGlassDemo.app\
687 | FM_SettingIcon_29x29.png
688 | iPad_Setting29
689 | 0
690 |
691 |
692 | True
693 |
694 |
695 | FrostGlassDemo.app\
696 | Default-Landscape.png
697 | iPad_Launch1024
698 | 1
699 |
700 |
701 | True
702 |
703 |
704 | FrostGlassDemo.app\
705 | FM_ApplicationIcon_76x76.png
706 | iPad_AppIcon76
707 | 0
708 |
709 |
710 | True
711 |
712 |
713 | FrostGlassDemo.app\
714 | FM_ApplicationIcon_72x72.png
715 | iPad_AppIcon72
716 | 0
717 |
718 |
719 | True
720 |
721 |
722 | FrostGlassDemo.app\
723 | Default-568h@2x.png
724 | iPhone_Launch640x1136
725 | 1
726 |
727 |
728 | True
729 |
730 |
731 | FrostGlassDemo.app\
732 | FM_ApplicationIcon_72x72.png
733 | iPad_AppIcon72
734 | 0
735 |
736 |
737 | True
738 |
739 |
740 | FrostGlassDemo.app\
741 | FM_SpotlightSearchIcon_100x100.png
742 | iPad_SpotLight100
743 | 0
744 |
745 |
746 | True
747 |
748 |
749 | FrostGlassDemo.app\
750 | Default-Landscape-736h@3x.png
751 | iPhone_Launch2208
752 | 0
753 |
754 |
755 | True
756 |
757 |
758 | FrostGlassDemo.app\
759 | FM_ApplicationIcon_57x57.png
760 | iPhone_AppIcon57
761 | 0
762 |
763 |
764 | True
765 |
766 |
767 | FrostGlassDemo.app\
768 | FM_SpotlightSearchIcon_100x100.png
769 | iPad_SpotLight100
770 | 0
771 |
772 |
773 | True
774 |
775 |
776 | FrostGlassDemo.app\
777 | Default.png
778 | iPhone_Launch320
779 | 1
780 |
781 |
782 | True
783 |
784 |
785 | FrostGlassDemo.app\
786 | Default~ipad.png
787 | iPad_Launch768
788 | 1
789 |
790 |
791 | True
792 |
793 |
794 | FrostGlassDemo.app\
795 | FM_SpotlightSearchIcon_40x40.png
796 | iPad_SpotLight40
797 | 0
798 |
799 |
800 | True
801 |
802 |
803 | FrostGlassDemo.app\
804 | FM_ApplicationIcon_152x152.png
805 | iPad_AppIcon152
806 | 0
807 |
808 |
809 | True
810 |
811 |
812 | FrostGlassDemo.app\
813 | FM_ApplicationIcon_114x114.png
814 | iPhone_AppIcon114
815 | 0
816 |
817 |
818 | True
819 |
820 |
821 | FrostGlassDemo.app\
822 | FM_SpotlightSearchIcon_29x29.png
823 | iPhone_Spotlight29
824 | 0
825 |
826 |
827 | True
828 |
829 |
830 | FrostGlassDemo.app\
831 | FM_ApplicationIcon_60x60.png
832 | iPhone_AppIcon60
833 | 0
834 |
835 |
836 | True
837 |
838 |
839 | FrostGlassDemo.app\
840 | Default-Portrait~ipad.png
841 | iPad_Launch768x1024
842 | 0
843 |
844 |
845 | True
846 |
847 |
848 | FrostGlassDemo.app\
849 | FM_ApplicationIcon_120x120.png
850 | iPhone_AppIcon120
851 | 0
852 |
853 |
854 | True
855 |
856 |
857 | FrostGlassDemo.app\
858 | Default@2x.png
859 | iPhone_Launch640
860 | 1
861 |
862 |
863 | True
864 |
865 |
866 | FrostGlassDemo.app\
867 | FM_ApplicationIcon_57x57.png
868 | iPhone_AppIcon57
869 | 0
870 |
871 |
872 | True
873 |
874 |
875 | FrostGlassDemo.app\
876 | ResourceRules.plist
877 | ProjectiOSDeviceResourceRules
878 | 1
879 |
880 |
881 | True
882 |
883 |
884 | FrostGlassDemo.app\
885 | FM_SpotlightSearchIcon_29x29.png
886 | iPhone_Spotlight29
887 | 0
888 |
889 |
890 | True
891 |
892 |
893 | FrostGlassDemo.app\
894 | Default-568h@2x.png
895 | iPhone_Launch640x1136
896 | 1
897 |
898 |
899 | True
900 |
901 |
902 | FrostGlassDemo.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\
903 | FrostGlassDemo
904 | ProjectiOSDeviceDebug
905 | 1
906 |
907 |
908 | True
909 |
910 |
911 | FrostGlassDemo.app\
912 | FM_SpotlightSearchIcon_40x40.png
913 | iPhone_Spotlight40
914 | 0
915 |
916 |
917 | True
918 |
919 |
920 | FrostGlassDemo.app\
921 | FM_SpotlightSearchIcon_80x80.png
922 | iPad_SpotLight80
923 | 0
924 |
925 |
926 | True
927 |
928 |
929 | FrostGlassDemo.app\
930 | FM_SpotlightSearchIcon_50x50.png
931 | iPad_SpotLight50
932 | 0
933 |
934 |
935 | True
936 |
937 |
938 | FrostGlassDemo.app\
939 | Default@2x.png
940 | iPhone_Launch640
941 | 1
942 |
943 |
944 | True
945 |
946 |
947 | FrostGlassDemo.app\
948 | FM_ApplicationIcon_152x152.png
949 | iPad_AppIcon152
950 | 0
951 |
952 |
953 | True
954 |
955 |
956 | FrostGlassDemo.app\
957 | Default-Portrait~ipad.png
958 | iPad_Launch768x1024
959 | 0
960 |
961 |
962 | True
963 |
964 |
965 | FrostGlassDemo.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\
966 | FrostGlassDemo
967 | ProjectiOSDeviceDebug
968 | 1
969 |
970 |
971 | True
972 |
973 |
974 | FrostGlassDemo.app\
975 | FM_SettingIcon_58x58.png
976 | iPad_Setting58
977 | 0
978 |
979 |
980 | True
981 |
982 |
983 | FrostGlassDemo.app\
984 | Info.plist
985 | ProjectiOSInfoPList
986 | 1
987 |
988 |
989 | True
990 |
991 |
992 | FrostGlassDemo.app\
993 | Default-Landscape@2x~ipad.png
994 | iPad_Launch2048x1536
995 | 0
996 |
997 |
998 | True
999 |
1000 |
1001 | FrostGlassDemo.app\
1002 | FM_SpotlightSearchIcon_58x58.png
1003 | iPhone_Spotlight58
1004 | 0
1005 |
1006 |
1007 | True
1008 |
1009 |
1010 | FrostGlassDemo.app\
1011 | FM_ApplicationIcon_120x120.png
1012 | iPhone_AppIcon120
1013 | 0
1014 |
1015 |
1016 | True
1017 |
1018 |
1019 | FrostGlassDemo.app\
1020 | Default~ipad.png
1021 | iPad_Launch768
1022 | 1
1023 |
1024 |
1025 | True
1026 |
1027 |
1028 | FrostGlassDemo.app\
1029 | Default-736h@3x.png
1030 | iPhone_Launch1242
1031 | 0
1032 |
1033 |
1034 | True
1035 |
1036 |
1037 | FrostGlassDemo.app\
1038 | FM_ApplicationIcon_114x114.png
1039 | iPhone_AppIcon114
1040 | 0
1041 |
1042 |
1043 | True
1044 |
1045 |
1046 | FrostGlassDemo.app\
1047 | Default-Landscape~ipad.png
1048 | iPad_Launch1024x768
1049 | 0
1050 |
1051 |
1052 | True
1053 |
1054 |
1055 | FrostGlassDemo.app\
1056 | Default-Landscape@2x.png
1057 | iPad_Launch2048
1058 | 1
1059 |
1060 |
1061 | True
1062 |
1063 |
1064 | FrostGlassDemo.app\
1065 | Default-Portrait@2x~ipad.png
1066 | iPad_Launch1536x2048
1067 | 0
1068 |
1069 |
1070 | True
1071 |
1072 |
1073 |
1074 |
1075 | FrostGlassDemo\
1076 | FrostGlassDemo.exe
1077 | ProjectOutput
1078 | 0
1079 |
1080 |
1081 | True
1082 | True
1083 |
1084 |
1085 |
1086 |
1087 | FrostGlassDemo.app\Contents\Resources\
1088 | FrostGlassDemo.icns
1089 | ProjectOSXResource
1090 | 1
1091 |
1092 |
1093 | True
1094 |
1095 |
1096 | FrostGlassDemo.app\Contents\MacOS\
1097 | libcgsqlite3.dylib
1098 | DependencyModule
1099 | 1
1100 |
1101 |
1102 | True
1103 |
1104 |
1105 | FrostGlassDemo.app\Contents\MacOS\
1106 | libcgunwind.1.0.dylib
1107 | DependencyModule
1108 | 1
1109 |
1110 |
1111 | True
1112 |
1113 |
1114 | FrostGlassDemo.app\Contents\
1115 | Info.plist
1116 | ProjectOSXInfoPList
1117 | 1
1118 |
1119 |
1120 | True
1121 |
1122 |
1123 | FrostGlassDemo.app\..\
1124 | FrostGlassDemo.entitlements
1125 | ProjectOSXEntitlements
1126 | 1
1127 |
1128 |
1129 | True
1130 |
1131 |
1132 | FrostGlassDemo.app\Contents\MacOS\
1133 | FrostGlassDemo
1134 | ProjectOutput
1135 | 1
1136 |
1137 |
1138 | True
1139 | True
1140 |
1141 |
1142 |
1143 |
1144 | FrostGlassDemo\res\drawable-small\
1145 | splash_image.png
1146 | Android_SplashImage426
1147 | 1
1148 |
1149 |
1150 | True
1151 |
1152 |
1153 | FrostGlassDemo\library\lib\armeabi-v7a\
1154 | gdbserver
1155 | AndroidGDBServer
1156 | 1
1157 |
1158 |
1159 | True
1160 |
1161 |
1162 | FrostGlassDemo\res\drawable\
1163 | splash_image_def.xml
1164 | AndroidSplashImageDef
1165 | 1
1166 |
1167 |
1168 | True
1169 |
1170 |
1171 | FrostGlassDemo\res\drawable-mdpi\
1172 | ic_launcher.png
1173 | Android_LauncherIcon48
1174 | 1
1175 |
1176 |
1177 | True
1178 |
1179 |
1180 | FrostGlassDemo\res\drawable-small\
1181 | splash_image.png
1182 | Android_SplashImage426
1183 | 1
1184 |
1185 |
1186 | True
1187 |
1188 |
1189 | FrostGlassDemo\res\drawable-large\
1190 | splash_image.png
1191 | Android_SplashImage640
1192 | 1
1193 |
1194 |
1195 | True
1196 |
1197 |
1198 | FrostGlassDemo\res\values\
1199 | styles.xml
1200 | AndroidSplashStyles
1201 | 1
1202 |
1203 |
1204 | True
1205 |
1206 |
1207 | FrostGlassDemo\library\lib\armeabi-v7a\
1208 | libFrostGlassDemo.so
1209 | ProjectOutput
1210 | 1
1211 |
1212 |
1213 | True
1214 | True
1215 |
1216 |
1217 | FrostGlassDemo\res\drawable-hdpi\
1218 | ic_launcher.png
1219 | Android_LauncherIcon72
1220 | 1
1221 |
1222 |
1223 | True
1224 |
1225 |
1226 | FrostGlassDemo\library\lib\mips\
1227 | libFrostGlassDemo.so
1228 | AndroidLibnativeMipsFile
1229 | 1
1230 |
1231 |
1232 | True
1233 |
1234 |
1235 | FrostGlassDemo\library\lib\armeabi-v7a\
1236 | libFrostGlassDemo.so
1237 | ProjectOutput
1238 | 1
1239 |
1240 |
1241 | True
1242 | True
1243 |
1244 |
1245 | FrostGlassDemo\
1246 | AndroidManifest.xml
1247 | ProjectAndroidManifest
1248 | 1
1249 |
1250 |
1251 | True
1252 |
1253 |
1254 | FrostGlassDemo\res\drawable-xxhdpi\
1255 | ic_launcher.png
1256 | Android_LauncherIcon144
1257 | 1
1258 |
1259 |
1260 | True
1261 |
1262 |
1263 | FrostGlassDemo\res\drawable-xhdpi\
1264 | ic_launcher.png
1265 | Android_LauncherIcon96
1266 | 1
1267 |
1268 |
1269 | True
1270 |
1271 |
1272 | FrostGlassDemo\classes\
1273 | classes.dex
1274 | AndroidClassesDexFile
1275 | 1
1276 |
1277 |
1278 | True
1279 |
1280 |
1281 | FrostGlassDemo\res\drawable-xlarge\
1282 | splash_image.png
1283 | Android_SplashImage960
1284 | 1
1285 |
1286 |
1287 | True
1288 |
1289 |
1290 | FrostGlassDemo\res\drawable-xlarge\
1291 | splash_image.png
1292 | Android_SplashImage960
1293 | 1
1294 |
1295 |
1296 | True
1297 |
1298 |
1299 | FrostGlassDemo\res\drawable-hdpi\
1300 | ic_launcher.png
1301 | Android_LauncherIcon72
1302 | 1
1303 |
1304 |
1305 | True
1306 |
1307 |
1308 | FrostGlassDemo\library\lib\armeabi-v7a\
1309 | gdbserver
1310 | AndroidGDBServer
1311 | 1
1312 |
1313 |
1314 | True
1315 |
1316 |
1317 | FrostGlassDemo\res\drawable-xhdpi\
1318 | ic_launcher.png
1319 | Android_LauncherIcon96
1320 | 1
1321 |
1322 |
1323 | True
1324 |
1325 |
1326 | FrostGlassDemo\res\drawable-normal\
1327 | splash_image.png
1328 | Android_SplashImage470
1329 | 1
1330 |
1331 |
1332 | True
1333 |
1334 |
1335 | FrostGlassDemo\res\drawable-normal\
1336 | splash_image.png
1337 | Android_SplashImage470
1338 | 1
1339 |
1340 |
1341 | True
1342 |
1343 |
1344 | FrostGlassDemo\res\values\
1345 | styles.xml
1346 | AndroidSplashStyles
1347 | 1
1348 |
1349 |
1350 | True
1351 |
1352 |
1353 | FrostGlassDemo\res\drawable-ldpi\
1354 | ic_launcher.png
1355 | Android_LauncherIcon36
1356 | 1
1357 |
1358 |
1359 | True
1360 |
1361 |
1362 | FrostGlassDemo\library\lib\armeabi\
1363 | libFrostGlassDemo.so
1364 | AndroidLibnativeArmeabiFile
1365 | 1
1366 |
1367 |
1368 | True
1369 |
1370 |
1371 | FrostGlassDemo\res\drawable-mdpi\
1372 | ic_launcher.png
1373 | Android_LauncherIcon48
1374 | 1
1375 |
1376 |
1377 | True
1378 |
1379 |
1380 | FrostGlassDemo\classes\
1381 | classes.dex
1382 | AndroidClassesDexFile
1383 | 1
1384 |
1385 |
1386 | True
1387 |
1388 |
1389 | FrostGlassDemo\res\drawable-xxhdpi\
1390 | ic_launcher.png
1391 | Android_LauncherIcon144
1392 | 1
1393 |
1394 |
1395 | True
1396 |
1397 |
1398 | FrostGlassDemo\res\drawable-large\
1399 | splash_image.png
1400 | Android_SplashImage640
1401 | 1
1402 |
1403 |
1404 | True
1405 |
1406 |
1407 | FrostGlassDemo\
1408 | AndroidManifest.xml
1409 | ProjectAndroidManifest
1410 | 1
1411 |
1412 |
1413 | True
1414 |
1415 |
1416 | FrostGlassDemo\res\drawable-ldpi\
1417 | ic_launcher.png
1418 | Android_LauncherIcon36
1419 | 1
1420 |
1421 |
1422 | True
1423 |
1424 |
1425 | FrostGlassDemo\res\drawable\
1426 | splash_image_def.xml
1427 | AndroidSplashImageDef
1428 | 1
1429 |
1430 |
1431 | True
1432 |
1433 |
1434 | FrostGlassDemo\library\lib\armeabi\
1435 | libFrostGlassDemo.so
1436 | AndroidLibnativeArmeabiFile
1437 | 1
1438 |
1439 |
1440 | True
1441 |
1442 |
1443 | FrostGlassDemo\library\lib\mips\
1444 | libFrostGlassDemo.so
1445 | AndroidLibnativeMipsFile
1446 | 1
1447 |
1448 |
1449 | True
1450 |
1451 |
1452 |
1453 |
1454 | FrostGlassDemo.app\
1455 | FM_ApplicationIcon_144x144.png
1456 | iPad_AppIcon144
1457 | 0
1458 |
1459 |
1460 | True
1461 |
1462 |
1463 | FrostGlassDemo.app\
1464 | FM_ApplicationIcon_144x144.png
1465 | iPad_AppIcon144
1466 | 0
1467 |
1468 |
1469 | True
1470 |
1471 |
1472 | FrostGlassDemo.app\
1473 | FM_ApplicationIcon_120x120.png
1474 | iPhone_AppIcon120
1475 | 0
1476 |
1477 |
1478 | True
1479 |
1480 |
1481 | FrostGlassDemo.app\
1482 | FM_ApplicationIcon_152x152.png
1483 | iPad_AppIcon152
1484 | 0
1485 |
1486 |
1487 | True
1488 |
1489 |
1490 | FrostGlassDemo.app\
1491 | FM_SpotlightSearchIcon_80x80.png
1492 | iPad_SpotLight80
1493 | 0
1494 |
1495 |
1496 | True
1497 |
1498 |
1499 | FrostGlassDemo.app\
1500 | Default-736h@3x.png
1501 | iPhone_Launch1242
1502 | 0
1503 |
1504 |
1505 | True
1506 |
1507 |
1508 | FrostGlassDemo.app\
1509 | FM_ApplicationIcon_72x72.png
1510 | iPad_AppIcon72
1511 | 0
1512 |
1513 |
1514 | True
1515 |
1516 |
1517 | FrostGlassDemo.app\
1518 | libcgunwind.1.0.dylib
1519 | DependencyModule
1520 | 1
1521 |
1522 |
1523 | True
1524 |
1525 |
1526 | FrostGlassDemo.app\
1527 | Default-Portrait~ipad.png
1528 | iPad_Launch768x1024
1529 | 0
1530 |
1531 |
1532 | True
1533 |
1534 |
1535 | FrostGlassDemo.app\
1536 | Default-Landscape@2x.png
1537 | iPad_Launch2048
1538 | 1
1539 |
1540 |
1541 | True
1542 |
1543 |
1544 | FrostGlassDemo.app\
1545 | Default@2x.png
1546 | iPhone_Launch640
1547 | 1
1548 |
1549 |
1550 | True
1551 |
1552 |
1553 | FrostGlassDemo.app\
1554 | FM_SpotlightSearchIcon_40x40.png
1555 | iPhone_Spotlight40
1556 | 0
1557 |
1558 |
1559 | True
1560 |
1561 |
1562 | FrostGlassDemo.app\
1563 | Default.png
1564 | iPhone_Launch320
1565 | 1
1566 |
1567 |
1568 | True
1569 |
1570 |
1571 | FrostGlassDemo.app\
1572 | FM_ApplicationIcon_180x180.png
1573 | iPhone_AppIcon180
1574 | 0
1575 |
1576 |
1577 | True
1578 |
1579 |
1580 | FrostGlassDemo.app\
1581 | FM_ApplicationIcon_180x180.png
1582 | iPhone_AppIcon180
1583 | 0
1584 |
1585 |
1586 | True
1587 |
1588 |
1589 | FrostGlassDemo.app\
1590 | FM_SettingIcon_58x58.png
1591 | iPad_Setting58
1592 | 0
1593 |
1594 |
1595 | True
1596 |
1597 |
1598 | FrostGlassDemo.app\
1599 | Default@2x.png
1600 | iPhone_Launch640
1601 | 1
1602 |
1603 |
1604 | True
1605 |
1606 |
1607 | FrostGlassDemo.app\
1608 | Default-Portrait@2x~ipad.png
1609 | iPad_Launch1536x2048
1610 | 0
1611 |
1612 |
1613 | True
1614 |
1615 |
1616 | FrostGlassDemo.app\
1617 | FM_SpotlightSearchIcon_80x80.png
1618 | iPad_SpotLight80
1619 | 0
1620 |
1621 |
1622 | True
1623 |
1624 |
1625 | FrostGlassDemo.app\
1626 | FM_SpotlightSearchIcon_100x100.png
1627 | iPad_SpotLight100
1628 | 0
1629 |
1630 |
1631 | True
1632 |
1633 |
1634 | FrostGlassDemo.app\
1635 | FM_ApplicationIcon_120x120.png
1636 | iPhone_AppIcon120
1637 | 0
1638 |
1639 |
1640 | True
1641 |
1642 |
1643 | FrostGlassDemo.app\
1644 | FrostGlassDemo
1645 | ProjectOutput
1646 | 1
1647 |
1648 |
1649 | True
1650 | True
1651 |
1652 |
1653 | FrostGlassDemo.app\
1654 | FM_SpotlightSearchIcon_50x50.png
1655 | iPad_SpotLight50
1656 | 0
1657 |
1658 |
1659 | True
1660 |
1661 |
1662 | FrostGlassDemo.app\
1663 | FM_SpotlightSearchIcon_29x29.png
1664 | iPhone_Spotlight29
1665 | 0
1666 |
1667 |
1668 | True
1669 |
1670 |
1671 | FrostGlassDemo.app\
1672 | Default-568h@2x.png
1673 | iPhone_Launch640x1136
1674 | 1
1675 |
1676 |
1677 | True
1678 |
1679 |
1680 | FrostGlassDemo.app\
1681 | FrostGlassDemo
1682 | ProjectOutput
1683 | 1
1684 |
1685 |
1686 | True
1687 | True
1688 |
1689 |
1690 | FrostGlassDemo.app\
1691 | FM_ApplicationIcon_87x87.png
1692 | iPhone_AppIcon87
1693 | 0
1694 |
1695 |
1696 | True
1697 |
1698 |
1699 | FrostGlassDemo.app\
1700 | FM_ApplicationIcon_60x60.png
1701 | iPhone_AppIcon60
1702 | 0
1703 |
1704 |
1705 | True
1706 |
1707 |
1708 | FrostGlassDemo.app\
1709 | Info.plist
1710 | ProjectiOSInfoPList
1711 | 1
1712 |
1713 |
1714 | True
1715 |
1716 |
1717 | FrostGlassDemo.app\
1718 | FM_ApplicationIcon_152x152.png
1719 | iPad_AppIcon152
1720 | 0
1721 |
1722 |
1723 | True
1724 |
1725 |
1726 | FrostGlassDemo.app\
1727 | Default-Portrait@2x.png
1728 | iPad_Launch1536
1729 | 1
1730 |
1731 |
1732 | True
1733 |
1734 |
1735 | FrostGlassDemo.app\
1736 | Default-Landscape-736h@3x.png
1737 | iPhone_Launch2208
1738 | 0
1739 |
1740 |
1741 | True
1742 |
1743 |
1744 | FrostGlassDemo.app\
1745 | FM_ApplicationIcon_114x114.png
1746 | iPhone_AppIcon114
1747 | 0
1748 |
1749 |
1750 | True
1751 |
1752 |
1753 | FrostGlassDemo.app\
1754 | Default-Landscape@2x~ipad.png
1755 | iPad_Launch2048x1536
1756 | 0
1757 |
1758 |
1759 | True
1760 |
1761 |
1762 | FrostGlassDemo.app\
1763 | libPCRE.dylib
1764 | DependencyModule
1765 | 1
1766 |
1767 |
1768 | True
1769 |
1770 |
1771 | FrostGlassDemo.app\
1772 | FM_SpotlightSearchIcon_50x50.png
1773 | iPad_SpotLight50
1774 | 0
1775 |
1776 |
1777 | True
1778 |
1779 |
1780 | FrostGlassDemo.app\
1781 | FM_ApplicationIcon_57x57.png
1782 | iPhone_AppIcon57
1783 | 0
1784 |
1785 |
1786 | True
1787 |
1788 |
1789 | FrostGlassDemo.app\
1790 | FM_ApplicationIcon_57x57.png
1791 | iPhone_AppIcon57
1792 | 0
1793 |
1794 |
1795 | True
1796 |
1797 |
1798 | FrostGlassDemo.app\
1799 | FM_SpotlightSearchIcon_29x29.png
1800 | iPhone_Spotlight29
1801 | 0
1802 |
1803 |
1804 | True
1805 |
1806 |
1807 | FrostGlassDemo.app\
1808 | FM_SettingIcon_29x29.png
1809 | iPad_Setting29
1810 | 0
1811 |
1812 |
1813 | True
1814 |
1815 |
1816 | FrostGlassDemo.app\
1817 | Default~ipad.png
1818 | iPad_Launch768
1819 | 1
1820 |
1821 |
1822 | True
1823 |
1824 |
1825 | FrostGlassDemo.app\
1826 | FM_SpotlightSearchIcon_58x58.png
1827 | iPhone_Spotlight58
1828 | 0
1829 |
1830 |
1831 | True
1832 |
1833 |
1834 | FrostGlassDemo.app\
1835 | FM_SpotlightSearchIcon_100x100.png
1836 | iPad_SpotLight100
1837 | 0
1838 |
1839 |
1840 | True
1841 |
1842 |
1843 | FrostGlassDemo.app\
1844 | FM_SpotlightSearchIcon_58x58.png
1845 | iPhone_Spotlight58
1846 | 0
1847 |
1848 |
1849 | True
1850 |
1851 |
1852 | FrostGlassDemo.app\
1853 | FM_ApplicationIcon_114x114.png
1854 | iPhone_AppIcon114
1855 | 0
1856 |
1857 |
1858 | True
1859 |
1860 |
1861 | FrostGlassDemo.app\
1862 | Default-Landscape@2x~ipad.png
1863 | iPad_Launch2048x1536
1864 | 0
1865 |
1866 |
1867 | True
1868 |
1869 |
1870 | FrostGlassDemo.app\
1871 | FM_SpotlightSearchIcon_40x40.png
1872 | iPhone_Spotlight40
1873 | 0
1874 |
1875 |
1876 | True
1877 |
1878 |
1879 | FrostGlassDemo.app\
1880 | Default-667h@2x.png
1881 | iPhone_Launch750
1882 | 0
1883 |
1884 |
1885 | True
1886 |
1887 |
1888 | FrostGlassDemo.app\
1889 | FrostGlassDemo.entitlements
1890 | ProjectiOSEntitlements
1891 | 0
1892 |
1893 |
1894 | True
1895 |
1896 |
1897 | FrostGlassDemo.app\
1898 | FM_SettingIcon_29x29.png
1899 | iPad_Setting29
1900 | 0
1901 |
1902 |
1903 | True
1904 |
1905 |
1906 | FrostGlassDemo.app\
1907 | FM_SpotlightSearchIcon_40x40.png
1908 | iPad_SpotLight40
1909 | 0
1910 |
1911 |
1912 | True
1913 |
1914 |
1915 | FrostGlassDemo.app\
1916 | FM_ApplicationIcon_87x87.png
1917 | iPhone_AppIcon87
1918 | 0
1919 |
1920 |
1921 | True
1922 |
1923 |
1924 | FrostGlassDemo.app\
1925 | FrostGlassDemo.entitlements
1926 | ProjectiOSEntitlements
1927 | 0
1928 |
1929 |
1930 | True
1931 |
1932 |
1933 | FrostGlassDemo.app\
1934 | FM_ApplicationIcon_72x72.png
1935 | iPad_AppIcon72
1936 | 0
1937 |
1938 |
1939 | True
1940 |
1941 |
1942 | FrostGlassDemo.app\
1943 | Default-667h@2x.png
1944 | iPhone_Launch750
1945 | 0
1946 |
1947 |
1948 | True
1949 |
1950 |
1951 | FrostGlassDemo.app\
1952 | FM_SpotlightSearchIcon_80x80.png
1953 | iPhone_Spotlight80
1954 | 0
1955 |
1956 |
1957 | True
1958 |
1959 |
1960 | FrostGlassDemo.app\
1961 | Default-568h@2x.png
1962 | iPhone_Launch640x1136
1963 | 1
1964 |
1965 |
1966 | True
1967 |
1968 |
1969 | FrostGlassDemo.app\
1970 | Default-Landscape.png
1971 | iPad_Launch1024
1972 | 1
1973 |
1974 |
1975 | True
1976 |
1977 |
1978 | FrostGlassDemo.app\
1979 | Default-Landscape~ipad.png
1980 | iPad_Launch1024x768
1981 | 0
1982 |
1983 |
1984 | True
1985 |
1986 |
1987 | FrostGlassDemo.app\
1988 | Info.plist
1989 | ProjectiOSInfoPList
1990 | 1
1991 |
1992 |
1993 | True
1994 |
1995 |
1996 | FrostGlassDemo.app\
1997 | FM_SpotlightSearchIcon_40x40.png
1998 | iPad_SpotLight40
1999 | 0
2000 |
2001 |
2002 | True
2003 |
2004 |
2005 | FrostGlassDemo.app\
2006 | FM_ApplicationIcon_60x60.png
2007 | iPhone_AppIcon60
2008 | 0
2009 |
2010 |
2011 | True
2012 |
2013 |
2014 | FrostGlassDemo.app\
2015 | Default-Portrait@2x.png
2016 | iPad_Launch1536
2017 | 1
2018 |
2019 |
2020 | True
2021 |
2022 |
2023 | FrostGlassDemo.app\
2024 | Default-736h@3x.png
2025 | iPhone_Launch1242
2026 | 0
2027 |
2028 |
2029 | True
2030 |
2031 |
2032 | FrostGlassDemo.app\
2033 | Default~ipad.png
2034 | iPad_Launch768
2035 | 1
2036 |
2037 |
2038 | True
2039 |
2040 |
2041 | FrostGlassDemo.app\
2042 | FM_SettingIcon_58x58.png
2043 | iPad_Setting58
2044 | 0
2045 |
2046 |
2047 | True
2048 |
2049 |
2050 | FrostGlassDemo.app\
2051 | Default.png
2052 | iPhone_Launch320
2053 | 1
2054 |
2055 |
2056 | True
2057 |
2058 |
2059 | FrostGlassDemo.app\
2060 | FM_ApplicationIcon_76x76.png
2061 | iPad_AppIcon76
2062 | 0
2063 |
2064 |
2065 | True
2066 |
2067 |
2068 | FrostGlassDemo.app\
2069 | Default-Landscape~ipad.png
2070 | iPad_Launch1024x768
2071 | 0
2072 |
2073 |
2074 | True
2075 |
2076 |
2077 | FrostGlassDemo.app\
2078 | FM_SpotlightSearchIcon_80x80.png
2079 | iPhone_Spotlight80
2080 | 0
2081 |
2082 |
2083 | True
2084 |
2085 |
2086 | FrostGlassDemo.app\
2087 | FM_ApplicationIcon_76x76.png
2088 | iPad_AppIcon76
2089 | 0
2090 |
2091 |
2092 | True
2093 |
2094 |
2095 | FrostGlassDemo.app\
2096 | Default-Landscape.png
2097 | iPad_Launch1024
2098 | 1
2099 |
2100 |
2101 | True
2102 |
2103 |
2104 | FrostGlassDemo.app\
2105 | Default-Landscape-736h@3x.png
2106 | iPhone_Launch2208
2107 | 0
2108 |
2109 |
2110 | True
2111 |
2112 |
2113 | FrostGlassDemo.app\
2114 | Default-Portrait@2x~ipad.png
2115 | iPad_Launch1536x2048
2116 | 0
2117 |
2118 |
2119 | True
2120 |
2121 |
2122 | FrostGlassDemo.app\
2123 | Default-Landscape@2x.png
2124 | iPad_Launch2048
2125 | 1
2126 |
2127 |
2128 | True
2129 |
2130 |
2131 | FrostGlassDemo.app\
2132 | Default-Portrait~ipad.png
2133 | iPad_Launch768x1024
2134 | 0
2135 |
2136 |
2137 | True
2138 |
2139 |
2140 |
2141 |
--------------------------------------------------------------------------------