├── .gitattributes ├── .gitignore ├── LICENSE ├── Projects └── RAD Studio 11 Alexandria │ ├── NetflixAcrylic.dpr │ └── NetflixAcrylic.dproj ├── README.md ├── Skia4DelphiAcrylicDemo.groupproj └── Source ├── Sample.Acrylic.fmx ├── Sample.Acrylic.pas ├── Sample.Main.fmx └── Sample.Main.pas /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Jim McKeeth 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Projects/RAD Studio 11 Alexandria/NetflixAcrylic.dpr: -------------------------------------------------------------------------------- 1 | program NetflixAcrylic; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | FMX.Skia, 7 | FMX.Types, 8 | Sample.Acrylic in '..\..\Source\Sample.Acrylic.pas' {AcrylicFrame: TFrame}, 9 | Sample.Main in '..\..\Source\Sample.Main.pas' {frmMain}; 10 | 11 | {$R *.res} 12 | 13 | begin 14 | GlobalUseSkia := True; 15 | GlobalUseMetal := True; 16 | GlobalEventDrivenDisplayUpdates := False; 17 | Application.Initialize; 18 | Application.CreateForm(TfrmMain, frmMain); 19 | Application.Run; 20 | end. 21 | -------------------------------------------------------------------------------- /Projects/RAD Studio 11 Alexandria/NetflixAcrylic.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | Application 5 | Release 6 | FMX 7 | NetflixAcrylic.dpr 8 | Win64 9 | {4CCF45F5-02CF-46F6-B4EB-4ABC70EFA104} 10 | 20.2 11 | 693267 12 | NetflixAcrylic 13 | 14 | 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | true 24 | Base 25 | true 26 | 27 | 28 | true 29 | Base 30 | true 31 | 32 | 33 | true 34 | Base 35 | true 36 | 37 | 38 | true 39 | Base 40 | true 41 | 42 | 43 | true 44 | Base 45 | true 46 | 47 | 48 | true 49 | Base 50 | true 51 | 52 | 53 | true 54 | Base 55 | true 56 | 57 | 58 | true 59 | Base 60 | true 61 | 62 | 63 | true 64 | Cfg_1 65 | true 66 | true 67 | 68 | 69 | true 70 | Cfg_1 71 | true 72 | true 73 | 74 | 75 | true 76 | Base 77 | true 78 | 79 | 80 | true 81 | Cfg_2 82 | true 83 | true 84 | 85 | 86 | true 87 | Cfg_2 88 | true 89 | true 90 | 91 | 92 | NetflixAcrylic 93 | true 94 | true 95 | true 96 | true 97 | true 98 | true 99 | true 100 | true 101 | .\..\..\Objects\$(Platform)\$(Config) 102 | .\..\..\Binary\$(Platform)\$(Config) 103 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 104 | $(BDS)\bin\delphi_PROJECTICNS.icns 105 | $(BDS)\bin\delphi_PROJECTICON.ico 106 | SKIA;$(DCC_Define) 107 | 108 | 109 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png 110 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png 111 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png 112 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png 113 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png 114 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png 115 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png 116 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png 117 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png 118 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png 119 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png 120 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png 121 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png 122 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png 123 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png 124 | Debug 125 | fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;PFFmpeg;IndyIPClient;dbxcds;Skia.Package.RTL;FmxTeeUI;bindcompfmx;FireDACSqliteDriver;DbxClientDriver;soapmidas;FrameStandPackage_11;PZXing;fmxFireDAC;dbexpress;PBilsenGDIPlus;PipFMX;inet;DataSnapCommon;fmxase;PipRTL;dbrtl;FireDACDBXDriver;Skia.Package.FMX;CustomIPTransport;DBXInterBaseDriver;IndySystem;PAlcinoeMin;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;PDelphiDX12;bindcompdbx;rtl;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;PVelthuisBigNumbers;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;PDelphiCrossSocket;dsnap;CloudService;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 126 | true 127 | 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=;minSdkVersion=23;targetSdkVersion=34 128 | 129 | 130 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png 131 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png 132 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png 133 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png 134 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png 135 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png 136 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png 137 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png 138 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png 139 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png 140 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png 141 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png 142 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png 143 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png 144 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png 145 | Debug 146 | fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;PFFmpeg;IndyIPClient;dbxcds;Skia.Package.RTL;FmxTeeUI;bindcompfmx;FireDACSqliteDriver;DbxClientDriver;soapmidas;FrameStandPackage_11;PZXing;fmxFireDAC;dbexpress;PBilsenGDIPlus;PipFMX;inet;DataSnapCommon;PipRTL;dbrtl;FireDACDBXDriver;Skia.Package.FMX;CustomIPTransport;DBXInterBaseDriver;IndySystem;PAlcinoeMin;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;PDelphiDX12;bindcompdbx;rtl;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;PVelthuisBigNumbers;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;PDelphiCrossSocket;dsnap;CloudService;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 147 | true 148 | 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=;minSdkVersion=23;targetSdkVersion=34 149 | 150 | 151 | Debug 152 | fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;PFFmpeg;IndyIPClient;dbxcds;Skia.Package.RTL;FmxTeeUI;bindcompfmx;FireDACSqliteDriver;DbxClientDriver;soapmidas;PZXing;fmxFireDAC;dbexpress;PBilsenGDIPlus;PipFMX;inet;DataSnapCommon;fmxase;PipRTL;dbrtl;FireDACDBXDriver;Skia.Package.FMX;CustomIPTransport;DBXInterBaseDriver;IndySystem;PAlcinoeMin;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;PDelphiDX12;bindcompdbx;rtl;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;PVelthuisBigNumbers;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;PDelphiCrossSocket;dsnap;CloudService;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 153 | $(MSBuildProjectName) 154 | true 155 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers 156 | iPhoneAndiPad 157 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png 158 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png 159 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png 160 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png 161 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png 162 | $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png 163 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png 164 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png 165 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png 166 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png 167 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png 168 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png 169 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png 170 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png 171 | $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png 172 | $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png 173 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png 174 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png 175 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png 176 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png 177 | 178 | 179 | fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;FireDACSqliteDriver;DbxClientDriver;soapmidas;fmxFireDAC;dbexpress;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;CustomIPTransport;DBXInterBaseDriver;IndySystem;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;bindcompdbx;rtl;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;dsnap;CloudService;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 180 | true 181 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers 182 | iPhoneAndiPad 183 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png 184 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png 185 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png 186 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png 187 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png 188 | $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png 189 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png 190 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png 191 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png 192 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png 193 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png 194 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png 195 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png 196 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png 197 | $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png 198 | $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png 199 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png 200 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png 201 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png 202 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png 203 | 204 | 205 | Debug 206 | DataSnapServer;fmx;DbxCommonDriver;bindengine;IndyIPCommon;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;PFFmpeg;IndyIPClient;dbxcds;Skia.Package.RTL;FmxTeeUI;bindcompfmx;DBXFirebirdDriver;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;FrameStandPackage_11;fmxFireDAC;dbexpress;PBilsenGDIPlus;DBXMySQLDriver;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;FireDACOracleDriver;Skia.Package.FMX;fmxdae;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;DBXInformixDriver;fmxobj;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 207 | true 208 | CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing the Bluetooth interface 209 | 210 | 211 | Debug 212 | DataSnapServer;fmx;DbxCommonDriver;bindengine;IndyIPCommon;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;DBXFirebirdDriver;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;fmxFireDAC;dbexpress;DBXMySQLDriver;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;FireDACOracleDriver;fmxdae;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;DBXInformixDriver;fmxobj;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 213 | true 214 | CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing the Bluetooth interface 215 | 216 | 217 | Debug 218 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 219 | vclwinx;DataSnapServer;dacvcl280;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;litedacvcl280;PFFmpeg;IndyIPClient;dbxcds;vcledge;dac280;Skia.Package.RTL;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;madBasic_;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;mydacfmx280;Tee;soapmidas;FrameStandPackage_11;mydacvcl280;vclactnband;TeeUI;PZXing;fmxFireDAC;dbexpress;PBilsenGDIPlus;PipFMX;FireDACInfxDriver;DBXMySQLDriver;PipFMXDesignTime;VclSmp;inet;DataSnapCommon;dacfmx280;vcltouch;fmxase;PipRTL;DBXOdbcDriver;dbrtl;FireDACDBXDriver;FireDACOracleDriver;Skia.Package.FMX;fmxdae;TeeDB;FMXContainer_Runtime_X102Tokyo;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;litedac280;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;madExcept_;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;mysqlmon280;PAlcinoeMin;vclFireDAC;madDisAsm_;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;mydac280;PDelphiDX12;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;DBXSybaseASEDriver;DBXDb2Driver;PVelthuisBigNumbers;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;PDelphiCrossSocket;bindcompvcl;dsnap;litedacfmx280;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;fmxobj;bindcompvclsmp;FMXTee;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 220 | $(BDS)\bin\default_app.manifest 221 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 222 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 223 | true 224 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 225 | 1033 226 | 227 | 228 | Debug 229 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 230 | vclwinx;DataSnapServer;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;PFFmpeg;IndyIPClient;dbxcds;vcledge;Skia.Package.RTL;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;Tee;soapmidas;FrameStandPackage_11;vclactnband;TeeUI;PZXing;fmxFireDAC;dbexpress;PBilsenGDIPlus;PipFMX;FireDACInfxDriver;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;PipRTL;DBXOdbcDriver;dbrtl;FireDACDBXDriver;FireDACOracleDriver;Skia.Package.FMX;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;PAlcinoeMin;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;PDelphiDX12;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;DBXSybaseASEDriver;DBXDb2Driver;PVelthuisBigNumbers;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;PDelphiCrossSocket;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;fmxobj;bindcompvclsmp;FMXTee;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 231 | $(BDS)\bin\default_app.manifest 232 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 233 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 234 | true 235 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 236 | 1033 237 | 238 | 239 | true 240 | true 241 | DEBUG;$(DCC_Define) 242 | true 243 | true 244 | false 245 | true 246 | true 247 | 248 | 249 | PerMonitorV2 250 | false 251 | 252 | 253 | PerMonitorV2 254 | 255 | 256 | 0 257 | RELEASE;$(DCC_Define) 258 | false 259 | 0 260 | 261 | 262 | PerMonitorV2 263 | true 264 | 1033 265 | 266 | 267 | PerMonitorV2 268 | 269 | 270 | 271 | MainSource 272 | 273 | 274 |
AcrylicFrame
275 | fmx 276 | TFrame 277 |
278 | 279 |
frmMain
280 | fmx 281 |
282 | 283 | Base 284 | 285 | 286 | Cfg_1 287 | Base 288 | 289 | 290 | Cfg_2 291 | Base 292 | 293 |
294 | 295 | Delphi.Personality.12 296 | Application 297 | 298 | 299 | 300 | NetflixAcrylic.dpr 301 | 302 | 303 | 304 | 305 | 306 | 307 | true 308 | 309 | 310 | 311 | 312 | true 313 | 314 | 315 | 316 | 317 | true 318 | 319 | 320 | 321 | 322 | .\ 323 | 0 324 | sk4d.dll 325 | true 326 | 327 | 328 | 329 | 330 | .\ 331 | 0 332 | sk4d.dll 333 | true 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | .\ 359 | 0 360 | sk4d.dll 361 | true 362 | 363 | 364 | 365 | 366 | .\ 367 | 0 368 | sk4d.dll 369 | true 370 | 371 | 372 | 373 | 374 | .\ 375 | 0 376 | sk4d.dll 377 | true 378 | 379 | 380 | 381 | 382 | .\ 383 | 0 384 | sk4d.dll 385 | true 386 | 387 | 388 | 389 | 390 | .\ 391 | 0 392 | sk4d.dll 393 | true 394 | 395 | 396 | 397 | 398 | .\ 399 | 0 400 | sk4d.dll 401 | true 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 1 413 | 414 | 415 | Contents\MacOS 416 | 1 417 | 418 | 419 | 0 420 | 421 | 422 | 423 | 424 | res\xml 425 | 1 426 | 427 | 428 | res\xml 429 | 1 430 | 431 | 432 | 433 | 434 | library\lib\armeabi 435 | 1 436 | 437 | 438 | library\lib\armeabi 439 | 1 440 | 441 | 442 | 443 | 444 | library\lib\armeabi-v7a 445 | 1 446 | 447 | 448 | 449 | 450 | library\lib\mips 451 | 1 452 | 453 | 454 | library\lib\mips 455 | 1 456 | 457 | 458 | 459 | 460 | library\lib\armeabi-v7a 461 | 1 462 | 463 | 464 | library\lib\arm64-v8a 465 | 1 466 | 467 | 468 | 469 | 470 | library\lib\armeabi-v7a 471 | 1 472 | 473 | 474 | 475 | 476 | res\drawable 477 | 1 478 | 479 | 480 | res\drawable 481 | 1 482 | 483 | 484 | 485 | 486 | res\drawable-anydpi-v21 487 | 1 488 | 489 | 490 | res\drawable-anydpi-v21 491 | 1 492 | 493 | 494 | 495 | 496 | res\values 497 | 1 498 | 499 | 500 | res\values 501 | 1 502 | 503 | 504 | 505 | 506 | res\values-v21 507 | 1 508 | 509 | 510 | res\values-v21 511 | 1 512 | 513 | 514 | 515 | 516 | res\values-v31 517 | 1 518 | 519 | 520 | res\values-v31 521 | 1 522 | 523 | 524 | 525 | 526 | res\drawable-anydpi-v26 527 | 1 528 | 529 | 530 | res\drawable-anydpi-v26 531 | 1 532 | 533 | 534 | 535 | 536 | res\drawable 537 | 1 538 | 539 | 540 | res\drawable 541 | 1 542 | 543 | 544 | 545 | 546 | res\drawable 547 | 1 548 | 549 | 550 | res\drawable 551 | 1 552 | 553 | 554 | 555 | 556 | res\drawable 557 | 1 558 | 559 | 560 | res\drawable 561 | 1 562 | 563 | 564 | 565 | 566 | res\drawable-anydpi-v33 567 | 1 568 | 569 | 570 | res\drawable-anydpi-v33 571 | 1 572 | 573 | 574 | 575 | 576 | res\values 577 | 1 578 | 579 | 580 | res\values 581 | 1 582 | 583 | 584 | 585 | 586 | res\values-night-v21 587 | 1 588 | 589 | 590 | res\values-night-v21 591 | 1 592 | 593 | 594 | 595 | 596 | res\drawable 597 | 1 598 | 599 | 600 | res\drawable 601 | 1 602 | 603 | 604 | 605 | 606 | res\drawable-xxhdpi 607 | 1 608 | 609 | 610 | res\drawable-xxhdpi 611 | 1 612 | 613 | 614 | 615 | 616 | res\drawable-xxxhdpi 617 | 1 618 | 619 | 620 | res\drawable-xxxhdpi 621 | 1 622 | 623 | 624 | 625 | 626 | res\drawable-ldpi 627 | 1 628 | 629 | 630 | res\drawable-ldpi 631 | 1 632 | 633 | 634 | 635 | 636 | res\drawable-mdpi 637 | 1 638 | 639 | 640 | res\drawable-mdpi 641 | 1 642 | 643 | 644 | 645 | 646 | res\drawable-hdpi 647 | 1 648 | 649 | 650 | res\drawable-hdpi 651 | 1 652 | 653 | 654 | 655 | 656 | res\drawable-xhdpi 657 | 1 658 | 659 | 660 | res\drawable-xhdpi 661 | 1 662 | 663 | 664 | 665 | 666 | res\drawable-mdpi 667 | 1 668 | 669 | 670 | res\drawable-mdpi 671 | 1 672 | 673 | 674 | 675 | 676 | res\drawable-hdpi 677 | 1 678 | 679 | 680 | res\drawable-hdpi 681 | 1 682 | 683 | 684 | 685 | 686 | res\drawable-xhdpi 687 | 1 688 | 689 | 690 | res\drawable-xhdpi 691 | 1 692 | 693 | 694 | 695 | 696 | res\drawable-xxhdpi 697 | 1 698 | 699 | 700 | res\drawable-xxhdpi 701 | 1 702 | 703 | 704 | 705 | 706 | res\drawable-xxxhdpi 707 | 1 708 | 709 | 710 | res\drawable-xxxhdpi 711 | 1 712 | 713 | 714 | 715 | 716 | res\drawable-small 717 | 1 718 | 719 | 720 | res\drawable-small 721 | 1 722 | 723 | 724 | 725 | 726 | res\drawable-normal 727 | 1 728 | 729 | 730 | res\drawable-normal 731 | 1 732 | 733 | 734 | 735 | 736 | res\drawable-large 737 | 1 738 | 739 | 740 | res\drawable-large 741 | 1 742 | 743 | 744 | 745 | 746 | res\drawable-xlarge 747 | 1 748 | 749 | 750 | res\drawable-xlarge 751 | 1 752 | 753 | 754 | 755 | 756 | res\values 757 | 1 758 | 759 | 760 | res\values 761 | 1 762 | 763 | 764 | 765 | 766 | res\drawable-anydpi-v24 767 | 1 768 | 769 | 770 | res\drawable-anydpi-v24 771 | 1 772 | 773 | 774 | 775 | 776 | res\drawable 777 | 1 778 | 779 | 780 | res\drawable 781 | 1 782 | 783 | 784 | 785 | 786 | res\drawable-night-anydpi-v21 787 | 1 788 | 789 | 790 | res\drawable-night-anydpi-v21 791 | 1 792 | 793 | 794 | 795 | 796 | res\drawable-anydpi-v31 797 | 1 798 | 799 | 800 | res\drawable-anydpi-v31 801 | 1 802 | 803 | 804 | 805 | 806 | res\drawable-night-anydpi-v31 807 | 1 808 | 809 | 810 | res\drawable-night-anydpi-v31 811 | 1 812 | 813 | 814 | 815 | 816 | 1 817 | 818 | 819 | Contents\MacOS 820 | 1 821 | 822 | 823 | 0 824 | 825 | 826 | 827 | 828 | Contents\MacOS 829 | 1 830 | .framework 831 | 832 | 833 | Contents\MacOS 834 | 1 835 | .framework 836 | 837 | 838 | Contents\MacOS 839 | 1 840 | .framework 841 | 842 | 843 | 0 844 | 845 | 846 | 847 | 848 | 1 849 | .dylib 850 | 851 | 852 | 1 853 | .dylib 854 | 855 | 856 | 1 857 | .dylib 858 | 859 | 860 | Contents\MacOS 861 | 1 862 | .dylib 863 | 864 | 865 | Contents\MacOS 866 | 1 867 | .dylib 868 | 869 | 870 | Contents\MacOS 871 | 1 872 | .dylib 873 | 874 | 875 | 0 876 | .dll;.bpl 877 | 878 | 879 | 880 | 881 | 1 882 | .dylib 883 | 884 | 885 | 1 886 | .dylib 887 | 888 | 889 | 1 890 | .dylib 891 | 892 | 893 | Contents\MacOS 894 | 1 895 | .dylib 896 | 897 | 898 | Contents\MacOS 899 | 1 900 | .dylib 901 | 902 | 903 | Contents\MacOS 904 | 1 905 | .dylib 906 | 907 | 908 | 0 909 | .bpl 910 | 911 | 912 | 913 | 914 | 0 915 | 916 | 917 | 0 918 | 919 | 920 | 0 921 | 922 | 923 | 0 924 | 925 | 926 | 0 927 | 928 | 929 | Contents\Resources\StartUp\ 930 | 0 931 | 932 | 933 | Contents\Resources\StartUp\ 934 | 0 935 | 936 | 937 | Contents\Resources\StartUp\ 938 | 0 939 | 940 | 941 | 0 942 | 943 | 944 | 945 | 946 | 1 947 | 948 | 949 | 1 950 | 951 | 952 | 953 | 954 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 955 | 1 956 | 957 | 958 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 959 | 1 960 | 961 | 962 | 963 | 964 | ..\ 965 | 1 966 | 967 | 968 | ..\ 969 | 1 970 | 971 | 972 | ..\ 973 | 1 974 | 975 | 976 | 977 | 978 | Contents 979 | 1 980 | 981 | 982 | Contents 983 | 1 984 | 985 | 986 | Contents 987 | 1 988 | 989 | 990 | 991 | 992 | Contents\Resources 993 | 1 994 | 995 | 996 | Contents\Resources 997 | 1 998 | 999 | 1000 | Contents\Resources 1001 | 1 1002 | 1003 | 1004 | 1005 | 1006 | library\lib\armeabi-v7a 1007 | 1 1008 | 1009 | 1010 | library\lib\arm64-v8a 1011 | 1 1012 | 1013 | 1014 | 1 1015 | 1016 | 1017 | 1 1018 | 1019 | 1020 | 1 1021 | 1022 | 1023 | 1 1024 | 1025 | 1026 | Contents\MacOS 1027 | 1 1028 | 1029 | 1030 | Contents\MacOS 1031 | 1 1032 | 1033 | 1034 | Contents\MacOS 1035 | 1 1036 | 1037 | 1038 | 0 1039 | 1040 | 1041 | 1042 | 1043 | library\lib\armeabi-v7a 1044 | 1 1045 | 1046 | 1047 | 1048 | 1049 | 1 1050 | 1051 | 1052 | 1 1053 | 1054 | 1055 | 1 1056 | 1057 | 1058 | 1059 | 1060 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1061 | 1 1062 | 1063 | 1064 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1065 | 1 1066 | 1067 | 1068 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1069 | 1 1070 | 1071 | 1072 | 1073 | 1074 | ..\ 1075 | 1 1076 | 1077 | 1078 | ..\ 1079 | 1 1080 | 1081 | 1082 | ..\ 1083 | 1 1084 | 1085 | 1086 | 1087 | 1088 | 1 1089 | 1090 | 1091 | 1 1092 | 1093 | 1094 | 1 1095 | 1096 | 1097 | 1098 | 1099 | ..\$(PROJECTNAME).launchscreen 1100 | 64 1101 | 1102 | 1103 | ..\$(PROJECTNAME).launchscreen 1104 | 64 1105 | 1106 | 1107 | 1108 | 1109 | 1 1110 | 1111 | 1112 | 1 1113 | 1114 | 1115 | 1 1116 | 1117 | 1118 | 1119 | 1120 | Assets 1121 | 1 1122 | 1123 | 1124 | Assets 1125 | 1 1126 | 1127 | 1128 | 1129 | 1130 | Assets 1131 | 1 1132 | 1133 | 1134 | Assets 1135 | 1 1136 | 1137 | 1138 | 1139 | 1140 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1141 | 1 1142 | 1143 | 1144 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1145 | 1 1146 | 1147 | 1148 | 1149 | 1150 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1151 | 1 1152 | 1153 | 1154 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1155 | 1 1156 | 1157 | 1158 | 1159 | 1160 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1161 | 1 1162 | 1163 | 1164 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1165 | 1 1166 | 1167 | 1168 | 1169 | 1170 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1171 | 1 1172 | 1173 | 1174 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1175 | 1 1176 | 1177 | 1178 | 1179 | 1180 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1181 | 1 1182 | 1183 | 1184 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1185 | 1 1186 | 1187 | 1188 | 1189 | 1190 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1191 | 1 1192 | 1193 | 1194 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1195 | 1 1196 | 1197 | 1198 | 1199 | 1200 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1201 | 1 1202 | 1203 | 1204 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1205 | 1 1206 | 1207 | 1208 | 1209 | 1210 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1211 | 1 1212 | 1213 | 1214 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1215 | 1 1216 | 1217 | 1218 | 1219 | 1220 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1221 | 1 1222 | 1223 | 1224 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1225 | 1 1226 | 1227 | 1228 | 1229 | 1230 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1231 | 1 1232 | 1233 | 1234 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1235 | 1 1236 | 1237 | 1238 | 1239 | 1240 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1241 | 1 1242 | 1243 | 1244 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1245 | 1 1246 | 1247 | 1248 | 1249 | 1250 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1251 | 1 1252 | 1253 | 1254 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1255 | 1 1256 | 1257 | 1258 | 1259 | 1260 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1261 | 1 1262 | 1263 | 1264 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1265 | 1 1266 | 1267 | 1268 | 1269 | 1270 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1271 | 1 1272 | 1273 | 1274 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1275 | 1 1276 | 1277 | 1278 | 1279 | 1280 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1281 | 1 1282 | 1283 | 1284 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1285 | 1 1286 | 1287 | 1288 | 1289 | 1290 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1291 | 1 1292 | 1293 | 1294 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1295 | 1 1296 | 1297 | 1298 | 1299 | 1300 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1301 | 1 1302 | 1303 | 1304 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1305 | 1 1306 | 1307 | 1308 | 1309 | 1310 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1311 | 1 1312 | 1313 | 1314 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1315 | 1 1316 | 1317 | 1318 | 1319 | 1320 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1321 | 1 1322 | 1323 | 1324 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1325 | 1 1326 | 1327 | 1328 | 1329 | 1330 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1331 | 1 1332 | 1333 | 1334 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1335 | 1 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | True 1353 | True 1354 | True 1355 | True 1356 | True 1357 | True 1358 | True 1359 | True 1360 | 1361 | 1362 | 12 1363 | 1364 | 1365 | 1366 | 1367 |
1368 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AcrylicScroll-Skia4Delphi 2 | Demo of Acrylic effect similar to the Netflix mobile app. Powered by Skia4Delphi and Embarcadero Delphi 11.2 Alexandria. Acrylic is a blured transparency as opposed to plain opacity change. 3 | 4 | https://user-images.githubusercontent.com/821930/215579805-a217f2c1-d167-4fc5-ae37-22c8df052f46.mp4 5 | 6 | -------------------------------------------------------------------------------- /Skia4DelphiAcrylicDemo.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {64C1F643-B187-4AD8-862F-287585F177F1} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Default.Personality.12 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Source/Sample.Acrylic.fmx: -------------------------------------------------------------------------------- 1 | object AcrylicFrame: TAcrylicFrame 2 | Size.Width = 464.000000000000000000 3 | Size.Height = 96.000000000000000000 4 | Size.PlatformDefault = False 5 | object rctBackground: TRectangle 6 | Align = Contents 7 | Fill.Color = xFF191919 8 | Locked = True 9 | Opacity = 0.699999988079071000 10 | Size.Width = 464.000000000000000000 11 | Size.Height = 96.000000000000000000 12 | Size.PlatformDefault = False 13 | Stroke.Kind = None 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /Source/Sample.Acrylic.pas: -------------------------------------------------------------------------------- 1 | unit Sample.Acrylic; 2 | 3 | interface 4 | 5 | uses 6 | { Delphi } 7 | System.SysUtils, System.Types, System.UITypes, System.UIConsts, 8 | System.Classes, FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Objects; 9 | 10 | type 11 | TRectangle = class(FMX.Objects.TRectangle) 12 | protected 13 | procedure Paint; override; 14 | end; 15 | 16 | TAcrylicFrame = class(TFrame) 17 | rctBackground: TRectangle; 18 | private 19 | fEnabled: Boolean; 20 | { Private declarations } 21 | public 22 | { Public declarations } 23 | property EffectEnabled: Boolean read fEnabled write fEnabled; 24 | 25 | end; 26 | 27 | implementation 28 | 29 | {$R *.fmx} 30 | 31 | uses 32 | { Skia } 33 | System.Skia, FMX.Skia.Canvas; 34 | 35 | { TRectangle } 36 | 37 | procedure TRectangle.Paint; 38 | var 39 | LCanvas: ISkCanvas; 40 | LSaveCount: Integer; 41 | begin 42 | if (Canvas is TSkCanvasCustom) and (TAcrylicFrame(Parent).EffectEnabled) then 43 | begin 44 | LCanvas := TSkCanvasCustom(Canvas).Canvas; 45 | LSaveCount := LCanvas.Save; 46 | try 47 | LCanvas.ClipRect(LocalRect, TSkClipOp.Intersect, True); 48 | LCanvas.SaveLayer(LocalRect, nil, 49 | TSkImageFilter.MakeBlur(10, 10, nil, TSkTileMode.Clamp), 50 | [TSkSaveLayerFlag.InitWithPrevious]); 51 | inherited; 52 | finally 53 | LCanvas.RestoreToCount(LSaveCount); 54 | end; 55 | end 56 | else 57 | inherited; 58 | end; 59 | 60 | end. 61 | -------------------------------------------------------------------------------- /Source/Sample.Main.pas: -------------------------------------------------------------------------------- 1 | unit Sample.Main; 2 | 3 | interface 4 | 5 | uses 6 | { Delphi } 7 | System.SysUtils, System.Types, System.UITypes, System.Classes, FMX.Types, 8 | FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Objects, FMX.Controls.Presentation, 9 | FMX.StdCtrls, FMX.Layouts, 10 | 11 | { Skia } 12 | System.Skia, FMX.Skia, 13 | 14 | { Sample } 15 | Sample.Acrylic, FMX.Effects; 16 | 17 | type 18 | TfrmMain = class(TForm) 19 | Header: TAcrylicFrame; 20 | Navigation: TAcrylicFrame; 21 | FakeContent: TVertScrollBox; 22 | Rectangle1: TRectangle; 23 | Layout1: TLayout; 24 | Label2: TLabel; 25 | Rectangle2: TRectangle; 26 | Label3: TLabel; 27 | Rectangle3: TRectangle; 28 | Label4: TLabel; 29 | Rectangle4: TRectangle; 30 | Label5: TLabel; 31 | Rectangle5: TRectangle; 32 | Label6: TLabel; 33 | Rectangle6: TRectangle; 34 | Label7: TLabel; 35 | Rectangle7: TRectangle; 36 | Label8: TLabel; 37 | Rectangle8: TRectangle; 38 | Label9: TLabel; 39 | Layout2: TLayout; 40 | Label11: TLabel; 41 | SkSvg1: TSkSvg; 42 | Image9: TImage; 43 | SkSvg2: TSkSvg; 44 | SkSvg3: TSkSvg; 45 | Rectangle10: TRectangle; 46 | Label1: TLabel; 47 | Rectangle11: TRectangle; 48 | Label10: TLabel; 49 | GridPanelLayout1: TGridPanelLayout; 50 | SkSvg4: TSkSvg; 51 | Label12: TLabel; 52 | SkSvg5: TSkSvg; 53 | Label13: TLabel; 54 | SkSvg6: TSkSvg; 55 | Label14: TLabel; 56 | SkSvg7: TSkSvg; 57 | Label15: TLabel; 58 | GlowEffect1: TGlowEffect; 59 | GlowEffect2: TGlowEffect; 60 | GlowEffect3: TGlowEffect; 61 | GlowEffect4: TGlowEffect; 62 | GlowEffect5: TGlowEffect; 63 | GlowEffect6: TGlowEffect; 64 | GlowEffect7: TGlowEffect; 65 | GlowEffect8: TGlowEffect; 66 | CheckBox1: TCheckBox; 67 | GlowEffect9: TGlowEffect; 68 | procedure CheckBox1Change(Sender: TObject); 69 | private 70 | { Private declarations } 71 | public 72 | { Public declarations } 73 | end; 74 | 75 | var 76 | frmMain: TfrmMain; 77 | 78 | implementation 79 | 80 | {$R *.fmx} 81 | 82 | procedure TfrmMain.CheckBox1Change(Sender: TObject); 83 | begin 84 | Navigation.EffectEnabled := CheckBox1.IsChecked; 85 | Header.EffectEnabled := CheckBox1.IsChecked; 86 | end; 87 | 88 | end. 89 | --------------------------------------------------------------------------------