├── License └── apache-2.0.txt ├── Samples ├── Delphi │ ├── FireMonkey │ │ └── Basic │ │ │ ├── Basic.deployproj │ │ │ ├── Basic.dpr │ │ │ ├── Basic.dproj │ │ │ ├── Basic.res │ │ │ ├── MainFm.fmx │ │ │ └── MainFm.pas │ └── VCL │ │ ├── Basic │ │ ├── Basic.dpr │ │ ├── Basic.dproj │ │ ├── Basic.res │ │ ├── MainFm.dfm │ │ └── MainFm.pas │ │ ├── Combustion │ │ ├── Combustion.dpr │ │ ├── Combustion.dproj │ │ ├── Combustion.res │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ └── media.vtdb │ │ ├── FullScreenApp │ │ ├── FullScreenApp.dpr │ │ ├── FullScreenApp.dproj │ │ ├── FullScreenApp.res │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ ├── SecondFm.dfm │ │ └── SecondFm.pas │ │ ├── Hasteroids │ │ ├── Engine.Globals.pas │ │ ├── Engine.Objects.pas │ │ ├── Engine.Particles.pas │ │ ├── Hasteroids.dpr │ │ ├── Hasteroids.dproj │ │ ├── Hasteroids.res │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ ├── Scene.Objects.Ships.inc │ │ ├── Scene.Objects.pas │ │ ├── Scene.Scores.pas │ │ ├── Sound.Globals.pas │ │ ├── StartFm.dfm │ │ ├── StartFm.pas │ │ ├── bass.pas │ │ └── media.asvf │ │ ├── Networking │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ ├── Networking.dpr │ │ ├── Networking.dproj │ │ └── Networking.res │ │ ├── Plasma │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ ├── Plasma.dpr │ │ ├── Plasma.dproj │ │ └── Plasma.res │ │ ├── Shapes │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ ├── Shapes.dpr │ │ ├── Shapes.dproj │ │ └── Shapes.res │ │ └── Tunnel │ │ ├── MainFm.dfm │ │ ├── MainFm.pas │ │ ├── Tunnel.dpr │ │ ├── Tunnel.dproj │ │ └── Tunnel.res ├── FreePascal │ ├── Android │ │ ├── Basic │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets │ │ │ │ ├── Tahoma9b.font │ │ │ │ ├── lena.tga │ │ │ │ └── lenna.png │ │ │ ├── gen │ │ │ │ └── com │ │ │ │ │ └── afterwarp │ │ │ │ │ └── pxl_basic │ │ │ │ │ ├── BuildConfig.java │ │ │ │ │ └── R.java │ │ │ ├── ic_launcher-web.png │ │ │ ├── jni │ │ │ │ ├── PXL_Basic.lpi │ │ │ │ └── PXL_Basic.lpr │ │ │ ├── libs │ │ │ │ └── android-support-v4.jar │ │ │ ├── proguard-project.txt │ │ │ ├── project.properties │ │ │ └── res │ │ │ │ ├── drawable-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-v11 │ │ │ │ └── styles.xml │ │ │ │ ├── values-v14 │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ └── Terrain │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets │ │ │ ├── Segoe10.font │ │ │ └── terrain.png │ │ │ ├── gen │ │ │ └── com │ │ │ │ └── afterwarp │ │ │ │ └── pxl_terrain │ │ │ │ ├── BuildConfig.java │ │ │ │ └── R.java │ │ │ ├── ic_launcher-web.png │ │ │ ├── jni │ │ │ ├── Engine.Landscape.pas │ │ │ ├── Engine.Scrolling.pas │ │ │ ├── PXL_Terrain.lpi │ │ │ └── PXL_Terrain.lpr │ │ │ ├── libs │ │ │ └── android-support-v4.jar │ │ │ ├── proguard-project.txt │ │ │ ├── project.properties │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-v11 │ │ │ └── styles.xml │ │ │ ├── values-v14 │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── Desktop │ │ ├── Basic │ │ │ ├── Basic.lpi │ │ │ ├── Basic.lpr │ │ │ ├── Basic.res │ │ │ ├── MainFm.lfm │ │ │ └── MainFm.pas │ │ ├── BasicSoft │ │ │ ├── BasicSoft.lpi │ │ │ ├── BasicSoft.lpr │ │ │ ├── BasicSoft.res │ │ │ ├── MainFm.lfm │ │ │ └── MainFm.pas │ │ ├── Combustion │ │ │ ├── Combustion.lpi │ │ │ ├── Combustion.lpr │ │ │ ├── Combustion.res │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ └── media.vtdb │ │ ├── FullScreenApp │ │ │ ├── FullScreenApp.lpi │ │ │ ├── FullScreenApp.lpr │ │ │ ├── FullScreenApp.res │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ ├── SecondFm.lfm │ │ │ └── SecondFm.pas │ │ ├── Hasteroids │ │ │ ├── Engine.Globals.pas │ │ │ ├── Engine.Objects.pas │ │ │ ├── Engine.Particles.pas │ │ │ ├── Hasteroids.lpi │ │ │ ├── Hasteroids.lpr │ │ │ ├── Hasteroids.res │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ ├── Scene.Objects.Ships.inc │ │ │ ├── Scene.Objects.pas │ │ │ ├── Scene.Scores.pas │ │ │ ├── Sound.Globals.pas │ │ │ ├── StartFm.lfm │ │ │ ├── StartFm.pas │ │ │ ├── bass.pas │ │ │ └── media.asvf │ │ ├── Networking │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ ├── Networking.lpi │ │ │ ├── Networking.lpr │ │ │ └── Networking.res │ │ ├── Plasma │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ ├── Plasma.lpi │ │ │ ├── Plasma.lpr │ │ │ └── Plasma.res │ │ ├── Shapes │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ ├── Shapes.lpi │ │ │ ├── Shapes.lpr │ │ │ └── Shapes.res │ │ └── Tunnel │ │ │ ├── MainFm.lfm │ │ │ ├── MainFm.pas │ │ │ ├── Tunnel.lpi │ │ │ ├── Tunnel.lpr │ │ │ └── Tunnel.res │ └── SingleBoard │ │ ├── Galileo │ │ ├── Blinky │ │ │ ├── Blinky-HowToConnect-Diagram.png │ │ │ ├── Blinky-HowToConnect-Photo.jpg │ │ │ ├── Blinky.lpi │ │ │ └── Blinky.lpr │ │ ├── DisplayI2C │ │ │ ├── DisplayI2C-HowToConnect-Diagram.png │ │ │ ├── DisplayI2C-HowToConnect-Photo.jpg │ │ │ ├── DisplayI2C.lpi │ │ │ └── DisplayI2C.lpr │ │ └── DisplaySPI │ │ │ ├── DisplaySPI-HowToConnect-Diagram.png │ │ │ ├── DisplaySPI-HowToConnect-Photo.jpg │ │ │ ├── DisplaySPI-Screenshot.jpg │ │ │ ├── DisplaySPI.lpi │ │ │ └── DisplaySPI.lpr │ │ ├── Generic │ │ ├── Blinky │ │ │ ├── Blinky-HowToConnect-Diagram.png │ │ │ ├── Blinky-HowToConnect-Photo.jpg │ │ │ ├── Blinky.lpi │ │ │ └── Blinky.lpr │ │ ├── DisplayI2C │ │ │ ├── DisplayI2C-HowToConnect-Diagram.png │ │ │ ├── DisplayI2C-HowToConnect-Photo.jpg │ │ │ ├── DisplayI2C.lpi │ │ │ └── DisplayI2C.lpr │ │ ├── DisplaySPI │ │ │ ├── DisplaySPI-HowToConnect-Diagram.png │ │ │ ├── DisplaySPI-HowToConnect-Photo.jpg │ │ │ ├── DisplaySPI-Screenshot.jpg │ │ │ ├── DisplaySPI.lpi │ │ │ └── DisplaySPI.lpr │ │ ├── Networking │ │ │ ├── Networking.lpi │ │ │ └── Networking.lpr │ │ ├── SerialCamera │ │ │ ├── SerialCamera.lpi │ │ │ └── SerialCamera.lpr │ │ └── V4L2Camera │ │ │ ├── V4L2Camera.lpi │ │ │ └── V4L2Camera.lpr │ │ ├── Media │ │ ├── consolas.font │ │ ├── corbel.font │ │ ├── kristen.font │ │ ├── lenna.png │ │ └── tahoma8.font │ │ └── RaspberryPI │ │ ├── BasicOpenGL │ │ ├── BasicOpenGL.lpi │ │ └── BasicOpenGL.lpr │ │ ├── Blinky │ │ ├── Blinky-HowToConnect-Diagram.png │ │ ├── Blinky-HowToConnect-Photo.jpg │ │ ├── Blinky.lpi │ │ └── Blinky.lpr │ │ ├── DisplayI2C │ │ ├── DisplayI2C-HowToConnect-Diagram.png │ │ ├── DisplayI2C-HowToConnect-Photo.jpg │ │ ├── DisplayI2C.lpi │ │ └── DisplayI2C.lpr │ │ ├── DisplaySPI │ │ ├── DisplaySPI-HowToConnect-Diagram.png │ │ ├── DisplaySPI-HowToConnect-Photo.jpg │ │ ├── DisplaySPI-Screenshot.jpg │ │ ├── DisplaySPI.lpi │ │ └── DisplaySPI.lpr │ │ └── DisplaySPIAndGPU │ │ ├── DisplaySPIAndGPU-HowToConnect-Diagram.png │ │ ├── DisplaySPIAndGPU-HowToConnect-Photo.jpg │ │ ├── DisplaySPIAndGPU-Screenshot.jpg │ │ ├── DisplaySPIAndGPU.lpi │ │ └── DisplaySPIAndGPU.lpr └── Media │ ├── BookAntiqua24.font │ ├── BookAntiqua24.png │ ├── BookAntiqua24.xml │ ├── Corbel.font │ ├── Corbel.png │ ├── Corbel.xml │ ├── Kristen.font │ ├── Kristen.png │ ├── Kristen.xml │ ├── Lenna.png │ ├── Lenna.tga │ ├── Scanline.png │ ├── SphinxExampleIcon.icns │ ├── SphinxExampleIcon.ico │ ├── Tahoma9b.font │ ├── Tahoma9b.png │ ├── Tahoma9b.xml │ ├── TempusSans.font │ ├── TempusSans.png │ ├── TempusSans.xml │ ├── TranceForm.font │ ├── TranceForm.png │ └── TranceForm.xml ├── Shaders ├── DirectX │ ├── CanvasSolid.ps │ ├── CanvasTextured.ps │ ├── CanvasTexturedA.ps │ ├── CanvasTexturedI.ps │ ├── CanvasTexturedL.ps │ ├── CanvasTexturedLA.ps │ └── CanvasVertex.vs └── readme.txt ├── Source ├── Android.AppGlue.pas ├── Android.AssetManager.pas ├── Android.Config.inc ├── Android.Configuration.pas ├── Android.DlFcn.pas ├── Android.EGL.pas ├── Android.Extended.pas ├── Android.GLES2.pas ├── Android.Input.pas ├── Android.JniClasses.pas ├── Android.KeyCodes.pas ├── Android.LibDefs.inc ├── Android.Log.pas ├── Android.Looper.pas ├── Android.NativeActivity.pas ├── Android.NativeWindow.pas ├── Android.PThread.pas ├── Android.Rect.pas ├── Jedi.Compilers.inc ├── Jedi.Direct3D9.Types.pas ├── Jedi.Direct3D9.inc ├── Jedi.Direct3D9.pas ├── PXL.Archives.Loading.pas ├── PXL.Archives.pas ├── PXL.Bitmaps.pas ├── PXL.Boards.Galileo.pas ├── PXL.Boards.LPC11xx.pas ├── PXL.Boards.PI.BCM.pas ├── PXL.Boards.RPi.pas ├── PXL.Boards.SC16IS7x0.pas ├── PXL.Boards.Soft.pas ├── PXL.Boards.Types.pas ├── PXL.Cameras.LSY201.pas ├── PXL.Cameras.Types.pas ├── PXL.Cameras.V4L2.pas ├── PXL.Cameras.VC0706.pas ├── PXL.Canvas.DX11.Shaders.inc ├── PXL.Canvas.DX11.pas ├── PXL.Canvas.DX7.pas ├── PXL.Canvas.DX9.pas ├── PXL.Canvas.GL.GL1.pas ├── PXL.Canvas.GL.SolidPixelShader.inc ├── PXL.Canvas.GL.TexturedPixelShader.inc ├── PXL.Canvas.GL.VertexShader.inc ├── PXL.Canvas.GL.pas ├── PXL.Canvas.GLES.SolidPixelShader.inc ├── PXL.Canvas.GLES.TexturedPixelShader.inc ├── PXL.Canvas.GLES.VertexShader.inc ├── PXL.Canvas.GLES.pas ├── PXL.Canvas.SRT.pas ├── PXL.Canvas.pas ├── PXL.Classes.pas ├── PXL.Clocks.DS1307.pas ├── PXL.Config.inc ├── PXL.Consts.pas ├── PXL.Data.pas ├── PXL.Devices.Android.pas ├── PXL.Devices.DX11.pas ├── PXL.Devices.DX7.pas ├── PXL.Devices.DX9.pas ├── PXL.Devices.FM.DX11.pas ├── PXL.Devices.FM.DX9.pas ├── PXL.Devices.FM.GL.pas ├── PXL.Devices.FM.GLES.pas ├── PXL.Devices.GL.Carbon.pas ├── PXL.Devices.GL.Cocoa.pas ├── PXL.Devices.GL.Win.pas ├── PXL.Devices.GL.X.pas ├── PXL.Devices.GLES.RPi.pas ├── PXL.Devices.GLES.X.pas ├── PXL.Devices.SRT.pas ├── PXL.Devices.pas ├── PXL.Displays.HD44780.pas ├── PXL.Displays.HX8357.pas ├── PXL.Displays.ILI9340.pas ├── PXL.Displays.PCB8544.pas ├── PXL.Displays.SSD1306.pas ├── PXL.Displays.SSD1351.pas ├── PXL.Displays.Types.pas ├── PXL.Drawables.pas ├── PXL.Events.pas ├── PXL.FMBridge.pas ├── PXL.Fonts.pas ├── PXL.Formats.pas ├── PXL.ImageFormats.Auto.pas ├── PXL.ImageFormats.FCL.pas ├── PXL.ImageFormats.TGA.pas ├── PXL.ImageFormats.Vampyre.pas ├── PXL.ImageFormats.WIC.pas ├── PXL.ImageFormats.pas ├── PXL.Images.pas ├── PXL.Linux.config.inc ├── PXL.Linux.ioctl.pas ├── PXL.Linux.videodev2.pas ├── PXL.Lists.pas ├── PXL.Logs.pas ├── PXL.MicroConfig.inc ├── PXL.NetComs.pas ├── PXL.Palettes.pas ├── PXL.Providers.Auto.pas ├── PXL.Providers.DX11.pas ├── PXL.Providers.DX7.pas ├── PXL.Providers.DX9.pas ├── PXL.Providers.FM.DX11.pas ├── PXL.Providers.FM.DX9.pas ├── PXL.Providers.FM.GL.pas ├── PXL.Providers.FM.GLES.pas ├── PXL.Providers.GL.pas ├── PXL.Providers.GLES.pas ├── PXL.Providers.SRT.pas ├── PXL.Providers.pas ├── PXL.Rasterizer.SRT.pas ├── PXL.Scripts.pas ├── PXL.Sensors.BMP180.pas ├── PXL.Sensors.DHT22.pas ├── PXL.Sensors.L3GD20.pas ├── PXL.Sensors.LSM303.pas ├── PXL.Sensors.SHT10.pas ├── PXL.Sensors.Types.pas ├── PXL.Shaders.DX11.pas ├── PXL.Shaders.GL.pas ├── PXL.Shaders.GLES.pas ├── PXL.Surfaces.GDI.pas ├── PXL.Surfaces.LCL.pas ├── PXL.Surfaces.pas ├── PXL.SwapChains.DX11.pas ├── PXL.SwapChains.DX7.pas ├── PXL.SwapChains.DX9.pas ├── PXL.SwapChains.pas ├── PXL.Sysfs.ADC.pas ├── PXL.Sysfs.Buses.pas ├── PXL.Sysfs.Core.pas ├── PXL.Sysfs.GPIO.pas ├── PXL.Sysfs.I2C.pas ├── PXL.Sysfs.PWM.pas ├── PXL.Sysfs.SPI.pas ├── PXL.Sysfs.Types.pas ├── PXL.Sysfs.UART.pas ├── PXL.SystemFont.inc ├── PXL.Textures.DX11.pas ├── PXL.Textures.DX7.pas ├── PXL.Textures.DX9.pas ├── PXL.Textures.GL.pas ├── PXL.Textures.GLES.pas ├── PXL.Textures.SRT.pas ├── PXL.Textures.pas ├── PXL.Timing.pas ├── PXL.TypeDef.pas ├── PXL.Types.DX11.pas ├── PXL.Types.DX7.pas ├── PXL.Types.DX9.pas ├── PXL.Types.GL.pas ├── PXL.Types.GLES.pas ├── PXL.Types.SRT.pas ├── PXL.Types.inc ├── PXL.Types.pas ├── PXL.Windows.D3D10.pas ├── PXL.Windows.D3D11.pas ├── PXL.Windows.D3D7.pas ├── PXL.Windows.D3DCommon.pas ├── PXL.Windows.DDraw.pas ├── PXL.Windows.DXGI.pas ├── PXL.Windows.UART.pas ├── PXL.Windows.Wincodec.pas └── PXL.XML.pas ├── Tools └── readme.txt └── readme.txt /Samples/Delphi/FireMonkey/Basic/Basic.dpr: -------------------------------------------------------------------------------- 1 | program Basic; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | MainFm in 'MainFm.pas' {MainForm}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Samples/Delphi/FireMonkey/Basic/Basic.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/FireMonkey/Basic/Basic.res -------------------------------------------------------------------------------- /Samples/Delphi/FireMonkey/Basic/MainFm.fmx: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'PXL Basic Demo' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | Position = ScreenCenter 8 | FormFactor.Width = 320 9 | FormFactor.Height = 480 10 | FormFactor.Devices = [Desktop] 11 | OnCreate = FormCreate 12 | OnDestroy = FormDestroy 13 | OnResize = FormResize 14 | OnPaint = FormPaint 15 | DesignerMasterStyle = 0 16 | object SysTimer: TTimer 17 | Interval = 1 18 | OnTimer = SysTimerTimer 19 | Left = 64 20 | Top = 80 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Basic/Basic.dpr: -------------------------------------------------------------------------------- 1 | program Basic; 2 | 3 | uses 4 | Vcl.Forms, 5 | MainFm in 'MainFm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Basic/Basic.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Basic/Basic.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Basic/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'PXL Basic Demo' 5 | ClientHeight = 442 6 | ClientWidth = 624 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | Scaled = False 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | OnResize = FormResize 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | end 22 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Combustion/Combustion.dpr: -------------------------------------------------------------------------------- 1 | program Combustion; 2 | 3 | uses 4 | Vcl.Forms, 5 | MainFm in 'MainFm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Combustion/Combustion.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Combustion/Combustion.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Combustion/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Old "Combustion" sample ported to PXL' 5 | ClientHeight = 442 6 | ClientWidth = 624 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | Scaled = False 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | OnResize = FormResize 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | end 22 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Combustion/media.vtdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Combustion/media.vtdb -------------------------------------------------------------------------------- /Samples/Delphi/VCL/FullScreenApp/FullScreenApp.dpr: -------------------------------------------------------------------------------- 1 | program FullScreenApp; 2 | 3 | uses 4 | Vcl.Forms, 5 | MainFm in 'MainFm.pas' {MainForm}, 6 | SecondFm in 'SecondFm.pas' {SecondForm}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TMainForm, MainForm); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/FullScreenApp/FullScreenApp.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/FullScreenApp/FullScreenApp.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/FullScreenApp/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'PXL FullScreen Demo' 5 | ClientHeight = 564 6 | ClientWidth = 784 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | OnDestroy = FormDestroy 16 | OnKeyDown = FormKeyDown 17 | OnResize = FormResize 18 | PixelsPerInch = 96 19 | TextHeight = 13 20 | end 21 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/FullScreenApp/SecondFm.dfm: -------------------------------------------------------------------------------- 1 | object SecondForm: TSecondForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'PXL Secondary Demo Form' 5 | ClientHeight = 300 6 | ClientWidth = 400 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnClose = FormClose 15 | OnKeyDown = FormKeyDown 16 | OnResize = FormResize 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | end 20 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/FullScreenApp/SecondFm.pas: -------------------------------------------------------------------------------- 1 | unit SecondFm; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | uses 17 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; 18 | 19 | type 20 | TSecondForm = class(TForm) 21 | procedure FormResize(Sender: TObject); 22 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 23 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 24 | private 25 | { Private declarations } 26 | public 27 | { Public declarations } 28 | end; 29 | 30 | var 31 | SecondForm: TSecondForm; 32 | 33 | implementation 34 | 35 | {$R *.dfm} 36 | 37 | uses 38 | PXL.Types, MainFm; 39 | 40 | procedure TSecondForm.FormResize(Sender: TObject); 41 | begin 42 | if MainForm <> nil then 43 | begin 44 | MainForm.SecondarySize := Point2i(ClientWidth, ClientHeight); 45 | 46 | if MainForm.EngineDevice <> nil then 47 | MainForm.EngineDevice.Resize(1, MainForm.SecondarySize); 48 | end; 49 | end; 50 | 51 | procedure TSecondForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 52 | begin 53 | if Key = VK_ESCAPE then 54 | Close; 55 | end; 56 | 57 | procedure TSecondForm.FormClose(Sender: TObject; var Action: TCloseAction); 58 | begin 59 | if (MainForm <> nil) and MainForm.Visible then 60 | MainForm.Close; 61 | end; 62 | 63 | end. 64 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/Engine.Globals.pas: -------------------------------------------------------------------------------- 1 | unit Engine.Globals; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Special note: this code was ported multiple times from earliest framework releases predating Asphyre. } 19 | 20 | uses 21 | PXL.Types, PXL.SwapChains, PXL.Canvas, PXL.Images, PXL.Fonts, PXL.Archives; 22 | 23 | var 24 | DisplaySize: TPoint2i; 25 | 26 | EngineDevice: TCustomSwapChainDevice = nil; 27 | EngineCanvas: TCustomCanvas = nil; 28 | EngineImages: TAtlasImages = nil; 29 | EngineFonts: TBitmapFonts = nil; 30 | EngineArchive: TArchive = nil; 31 | 32 | ImageBackground: Integer = -1; 33 | ImageShipArmor: Integer = -1; 34 | ImageCShineLogo: Integer = -1; 35 | ImageBandLogo: Integer = -1; 36 | ImageLogo: Integer = -1; 37 | ImageShip: Integer = -1; 38 | ImageRock: Integer = -1; 39 | ImageTorpedo: Integer = -1; 40 | ImageExplode: Integer = -1; 41 | ImageCombust: Integer = -1; 42 | 43 | FontArialBlack: Integer = -1; 44 | FontTimesRoman: Integer = -1; 45 | FontImpact: Integer = -1; 46 | 47 | implementation 48 | 49 | end. 50 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/Hasteroids.dpr: -------------------------------------------------------------------------------- 1 | program Hasteroids; 2 | 3 | uses 4 | Forms, 5 | MainFm in 'MainFm.pas' {MainForm}, 6 | StartFm in 'StartFm.pas' {StartForm}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/Hasteroids.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Hasteroids/Hasteroids.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Top = 120 4 | Caption = 'Hasteroids' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = True 14 | Position = poScreenCenter 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | OnKeyDown = FormKeyDown 18 | OnKeyUp = FormKeyUp 19 | OnResize = FormResize 20 | PixelsPerInch = 96 21 | TextHeight = 13 22 | end 23 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/Scene.Objects.Ships.inc: -------------------------------------------------------------------------------- 1 | const 2 | ShipCoords: array[0..31, 0..2] of TPoint2i = ( 3 | ((X: 51; Y: 38), (X: 12; Y: 38), (X: 32; Y: 17)), 4 | ((X: 51; Y: 33), (X: 13; Y: 40), (X: 28; Y: 17)), 5 | ((X: 50; Y: 30), (X: 15; Y: 43), (X: 24; Y: 18)), 6 | ((X: 49; Y: 27), (X: 16; Y: 45), (X: 21; Y: 19)), 7 | ((X: 48; Y: 23), (X: 19; Y: 44), (X: 19; Y: 21)), 8 | ((X: 46; Y: 21), (X: 22; Y: 47), (X: 17; Y: 23)), 9 | ((X: 45; Y: 19), (X: 29; Y: 48), (X: 16; Y: 25)), 10 | ((X: 41; Y: 17), (X: 34; Y: 48), (X: 15; Y: 27)), 11 | ((X: 38; Y: 16), (X: 40; Y: 47), (X: 15; Y: 32)), 12 | ((X: 35; Y: 15), (X: 44; Y: 46), (X: 17; Y: 35)), 13 | ((X: 31; Y: 15), (X: 50; Y: 42), (X: 18; Y: 37)), 14 | ((X: 28; Y: 15), (X: 52; Y: 38), (X: 19; Y: 39)), 15 | ((X: 25; Y: 16), (X: 54; Y: 34), (X: 20; Y: 40)), 16 | ((X: 21; Y: 16), (X: 54; Y: 30), (X: 23; Y: 42)), 17 | ((X: 19; Y: 17), (X: 53; Y: 27), (X: 27; Y: 43)), 18 | ((X: 16; Y: 20), (X: 52; Y: 24), (X: 30; Y: 44)), 19 | ((X: 12; Y: 22), (X: 50; Y: 22), (X: 32; Y: 44)), 20 | ((X: 11; Y: 26), (X: 46; Y: 20), (X: 35; Y: 44)), 21 | ((X: 10; Y: 28), (X: 44; Y: 19), (X: 38; Y: 43)), 22 | ((X: 10; Y: 32), (X: 42; Y: 16), (X: 40; Y: 42)), 23 | ((X: 11; Y: 35), (X: 38; Y: 16), (X: 44; Y: 40)), 24 | ((X: 12; Y: 38), (X: 35; Y: 15), (X: 42; Y: 39)), 25 | ((X: 14; Y: 41), (X: 31; Y: 15), (X: 45; Y: 37)), 26 | ((X: 18; Y: 44), (X: 28; Y: 15), (X: 46; Y: 35)), 27 | ((X: 23; Y: 47), (X: 25; Y: 16), (X: 48; Y: 31)), 28 | ((X: 27; Y: 49), (X: 22; Y: 17), (X: 48; Y: 27)), 29 | ((X: 32; Y: 50), (X: 19; Y: 19), (X: 47; Y: 25)), 30 | ((X: 37; Y: 49), (X: 16; Y: 22), (X: 45; Y: 23)), 31 | ((X: 41; Y: 46), (X: 14; Y: 25), (X: 44; Y: 21)), 32 | ((X: 44; Y: 45), (X: 12; Y: 29), (X: 39; Y: 19)), 33 | ((X: 47; Y: 44), (X: 12; Y: 32), (X: 37; Y: 18)), 34 | ((X: 49; Y: 41), (X: 12; Y: 34), (X: 33; Y: 17))); 35 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/Sound.Globals.pas: -------------------------------------------------------------------------------- 1 | unit Sound.Globals; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Special note: this code was ported multiple times from earliest framework releases predating Asphyre. } 19 | 20 | uses 21 | bass; 22 | 23 | var 24 | MusicModule: HMusic = 0; 25 | EffectSamples: array[0..3] of HSample; 26 | 27 | procedure PlaySample(const Sample: HSample; const Volume: Integer); 28 | 29 | implementation 30 | 31 | procedure PlaySample(const Sample: HSample; const Volume: Integer); 32 | var 33 | Channel: HChannel; 34 | begin 35 | Channel := BASS_SampleGetChannel(Sample, False); 36 | if Channel <> 0 then 37 | begin 38 | BASS_ChannelSetAttribute(Channel, BASS_ATTRIB_VOL, Volume / 100.0); 39 | BASS_ChannelPlay(Channel, True); 40 | end; 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/StartFm.pas: -------------------------------------------------------------------------------- 1 | unit StartFm; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Special note: this code was ported multiple times from earliest framework releases predating Asphyre. } 19 | 20 | uses 21 | SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, PXL.TypeDef, PXL.Providers; 22 | 23 | type 24 | TStartForm = class(TForm) 25 | LogoImage: TImage; 26 | TopBevel: TBevel; 27 | NameGroup: TGroupBox; 28 | NameEdit: TEdit; 29 | ConfigGroup: TGroupBox; 30 | PlayButton: TBitBtn; 31 | CloseButton: TBitBtn; 32 | VSyncBox: TCheckBox; 33 | ProviderBox: TComboBox; 34 | procedure FormCreate(Sender: TObject); 35 | private 36 | { Private declarations } 37 | function GetVSync: Boolean; 38 | function GetPlayerName: UniString; 39 | public 40 | { Public declarations } 41 | function CreateProvider: TGraphicsDeviceProvider; 42 | 43 | property VSync: Boolean read GetVSync; 44 | property PlayerName: UniString read GetPlayerName; 45 | end; 46 | 47 | var 48 | StartForm: TStartForm; 49 | 50 | implementation 51 | {$R *.dfm} 52 | 53 | uses 54 | {$IFDEF CPUX86}PXL.Providers.DX7,{$ENDIF} PXL.Providers.DX9, PXL.Providers.DX11, PXL.Providers.GL; 55 | 56 | procedure TStartForm.FormCreate(Sender: TObject); 57 | begin 58 | ProviderBox.Items.Add('DirectX 11'); 59 | ProviderBox.Items.Add('DirectX 9'); 60 | ProviderBox.Items.Add('OpenGL'); 61 | {$IFDEF CPUX86} 62 | ProviderBox.Items.Add('DirectX 7'); 63 | {$ENDIF} 64 | ProviderBox.ItemIndex := 0; 65 | end; 66 | 67 | function TStartForm.GetVSync: Boolean; 68 | begin 69 | Result := VSyncBox.Checked; 70 | end; 71 | 72 | function TStartForm.GetPlayerName: UniString; 73 | begin 74 | Result := NameEdit.Text; 75 | end; 76 | 77 | function TStartForm.CreateProvider: TGraphicsDeviceProvider; 78 | begin 79 | case ProviderBox.ItemIndex of 80 | 0: Result := TDX11Provider.Create(nil); 81 | 1: Result := TDX9Provider.Create(nil); 82 | 2: Result := TGLProvider.Create(nil); 83 | {$IFDEF CPUX86} 84 | 3: Result := TDX7Provider.Create(nil); 85 | {$ENDIF} 86 | end; 87 | end; 88 | 89 | end. 90 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Hasteroids/media.asvf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Hasteroids/media.asvf -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Networking/Networking.dpr: -------------------------------------------------------------------------------- 1 | program Networking; 2 | 3 | uses 4 | Vcl.Forms, 5 | MainFm in 'MainFm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Networking/Networking.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Networking/Networking.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Plasma/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'PXL Plasma Sample' 5 | ClientHeight = 512 6 | ClientWidth = 512 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | Scaled = False 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | OnResize = FormResize 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | end 22 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Plasma/Plasma.dpr: -------------------------------------------------------------------------------- 1 | program Plasma; 2 | 3 | uses 4 | Forms, 5 | MainFm in 'MainFm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TMainForm, MainForm); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Plasma/Plasma.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Plasma/Plasma.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Shapes/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Asphyre Sphinx: Shapes Example' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | Scaled = False 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | OnResize = FormResize 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | end 22 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Shapes/Shapes.dpr: -------------------------------------------------------------------------------- 1 | program Shapes; 2 | 3 | uses 4 | Forms, 5 | MainFm in 'MainFm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TMainForm, MainForm); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Shapes/Shapes.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Shapes/Shapes.res -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Tunnel/MainFm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'PXL Tunnel Demo' 5 | ClientHeight = 682 6 | ClientWidth = 704 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | Scaled = False 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | OnResize = FormResize 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | end 22 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Tunnel/Tunnel.dpr: -------------------------------------------------------------------------------- 1 | program Tunnel; 2 | 3 | uses 4 | Vcl.Forms, 5 | MainFm in 'MainFm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Samples/Delphi/VCL/Tunnel/Tunnel.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Delphi/VCL/Tunnel/Tunnel.res -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | PXL_Basic 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 8 | 9 | 12 | 13 | 18 | 19 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/assets/Tahoma9b.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/assets/Tahoma9b.font -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/assets/lena.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/assets/lena.tga -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/assets/lenna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/assets/lenna.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/gen/com/afterwarp/pxl_basic/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.afterwarp.pxl_basic; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/gen/com/afterwarp/pxl_basic/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | 8 | package com.afterwarp.pxl_basic; 9 | 10 | public final class R { 11 | public static final class attr { 12 | } 13 | public static final class drawable { 14 | public static final int ic_launcher=0x7f020000; 15 | } 16 | public static final class string { 17 | public static final int app_name=0x7f030000; 18 | } 19 | public static final class style { 20 | /** 21 | Base application theme, dependent on API level. This theme is replaced 22 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 23 | 24 | 25 | Theme customizations available in newer API levels can go in 26 | res/values-vXX/styles.xml, while customizations related to 27 | backward-compatibility can go here. 28 | 29 | 30 | Base application theme for API 11+. This theme completely replaces 31 | AppBaseTheme from res/values/styles.xml on API 11+ devices. 32 | 33 | API 11 theme customizations can go here. 34 | 35 | Base application theme for API 14+. This theme completely replaces 36 | AppBaseTheme from BOTH res/values/styles.xml and 37 | res/values-v11/styles.xml on API 14+ devices. 38 | 39 | API 14 theme customizations can go here. 40 | */ 41 | public static final int AppBaseTheme=0x7f040000; 42 | /** Application theme. 43 | All customizations that are NOT specific to a particular API-level can go here. 44 | */ 45 | public static final int AppTheme=0x7f040001; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/ic_launcher-web.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/libs/android-support-v4.jar -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-15 15 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Basic/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | PXL_Basic 4 | 5 | 6 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Basic/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | PXL_Terain 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 8 | 9 | 12 | 13 | 18 | 19 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/assets/Segoe10.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/assets/Segoe10.font -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/assets/terrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/assets/terrain.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/gen/com/afterwarp/pxl_terrain/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.afterwarp.pxl_terrain; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/gen/com/afterwarp/pxl_terrain/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | 8 | package com.afterwarp.pxl_terrain; 9 | 10 | public final class R { 11 | public static final class attr { 12 | } 13 | public static final class drawable { 14 | public static final int ic_launcher=0x7f020000; 15 | } 16 | public static final class string { 17 | public static final int app_name=0x7f030000; 18 | } 19 | public static final class style { 20 | /** 21 | Base application theme, dependent on API level. This theme is replaced 22 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 23 | 24 | 25 | Theme customizations available in newer API levels can go in 26 | res/values-vXX/styles.xml, while customizations related to 27 | backward-compatibility can go here. 28 | 29 | 30 | Base application theme for API 11+. This theme completely replaces 31 | AppBaseTheme from res/values/styles.xml on API 11+ devices. 32 | 33 | API 11 theme customizations can go here. 34 | 35 | Base application theme for API 14+. This theme completely replaces 36 | AppBaseTheme from BOTH res/values/styles.xml and 37 | res/values-v11/styles.xml on API 14+ devices. 38 | 39 | API 14 theme customizations can go here. 40 | */ 41 | public static final int AppBaseTheme=0x7f040000; 42 | /** Application theme. 43 | All customizations that are NOT specific to a particular API-level can go here. 44 | */ 45 | public static final int AppTheme=0x7f040001; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/ic_launcher-web.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/libs/android-support-v4.jar -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-15 15 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Android/Terrain/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | PXL_Terrain 4 | 5 | 6 | -------------------------------------------------------------------------------- /Samples/FreePascal/Android/Terrain/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Basic/Basic.lpi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | </General> 16 | <i18n> 17 | <EnableI18N LFM="False"/> 18 | </i18n> 19 | <BuildModes Count="1"> 20 | <Item1 Name="Default" Default="True"/> 21 | </BuildModes> 22 | <PublishOptions> 23 | <Version Value="2"/> 24 | </PublishOptions> 25 | <RunParams> 26 | <local> 27 | <FormatVersion Value="1"/> 28 | </local> 29 | </RunParams> 30 | <RequiredPackages Count="1"> 31 | <Item1> 32 | <PackageName Value="LCL"/> 33 | </Item1> 34 | </RequiredPackages> 35 | <Units Count="2"> 36 | <Unit0> 37 | <Filename Value="Basic.lpr"/> 38 | <IsPartOfProject Value="True"/> 39 | </Unit0> 40 | <Unit1> 41 | <Filename Value="MainFm.pas"/> 42 | <IsPartOfProject Value="True"/> 43 | <ComponentName Value="MainForm"/> 44 | <HasResources Value="True"/> 45 | <ResourceBaseClass Value="Form"/> 46 | </Unit1> 47 | </Units> 48 | </ProjectOptions> 49 | <CompilerOptions> 50 | <Version Value="11"/> 51 | <PathDelim Value="\"/> 52 | <Target> 53 | <Filename Value="Basic"/> 54 | </Target> 55 | <SearchPaths> 56 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 57 | <OtherUnitFiles Value="..\..\..\..\Source"/> 58 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 59 | </SearchPaths> 60 | <Parsing> 61 | <SyntaxOptions> 62 | <SyntaxMode Value="Delphi"/> 63 | </SyntaxOptions> 64 | </Parsing> 65 | <CodeGeneration> 66 | <SmartLinkUnit Value="True"/> 67 | <Optimizations> 68 | <OptimizationLevel Value="3"/> 69 | </Optimizations> 70 | </CodeGeneration> 71 | <Linking> 72 | <Debugging> 73 | <GenerateDebugInfo Value="False"/> 74 | <StripSymbols Value="True"/> 75 | </Debugging> 76 | <LinkSmart Value="True"/> 77 | <Options> 78 | <Win32> 79 | <GraphicApplication Value="True"/> 80 | </Win32> 81 | </Options> 82 | </Linking> 83 | </CompilerOptions> 84 | <Debugging> 85 | <Exceptions Count="3"> 86 | <Item1> 87 | <Name Value="EAbort"/> 88 | </Item1> 89 | <Item2> 90 | <Name Value="ECodetoolError"/> 91 | </Item2> 92 | <Item3> 93 | <Name Value="EFOpenError"/> 94 | </Item3> 95 | </Exceptions> 96 | </Debugging> 97 | </CONFIG> 98 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Basic/Basic.lpr: -------------------------------------------------------------------------------- 1 | program Basic; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, MainFm 11 | { you can add units after this }; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | RequireDerivedFormResource := True; 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Basic/Basic.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Basic/Basic.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Basic/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 475 4 | Top = 120 5 | Width = 640 6 | Caption = 'PXL Basic Demo' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnResize = FormResize 10 | Position = poScreenCenter 11 | LCLVersion = '1.9.0.0' 12 | end 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/BasicSoft/BasicSoft.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="BasicSoft"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | <Icon Value="0"/> 16 | </General> 17 | <i18n> 18 | <EnableI18N LFM="False"/> 19 | </i18n> 20 | <VersionInfo> 21 | <StringTable ProductVersion=""/> 22 | </VersionInfo> 23 | <BuildModes Count="1"> 24 | <Item1 Name="Default" Default="True"/> 25 | </BuildModes> 26 | <PublishOptions> 27 | <Version Value="2"/> 28 | </PublishOptions> 29 | <RunParams> 30 | <local> 31 | <FormatVersion Value="1"/> 32 | </local> 33 | </RunParams> 34 | <RequiredPackages Count="1"> 35 | <Item1> 36 | <PackageName Value="LCL"/> 37 | </Item1> 38 | </RequiredPackages> 39 | <Units Count="2"> 40 | <Unit0> 41 | <Filename Value="BasicSoft.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | </Unit0> 44 | <Unit1> 45 | <Filename Value="MainFm.pas"/> 46 | <IsPartOfProject Value="True"/> 47 | <ComponentName Value="MainForm"/> 48 | <HasResources Value="True"/> 49 | <ResourceBaseClass Value="Form"/> 50 | </Unit1> 51 | </Units> 52 | </ProjectOptions> 53 | <CompilerOptions> 54 | <Version Value="11"/> 55 | <PathDelim Value="\"/> 56 | <Target> 57 | <Filename Value="BasicSoft"/> 58 | </Target> 59 | <SearchPaths> 60 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 61 | <OtherUnitFiles Value="..\..\..\..\Source"/> 62 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 63 | </SearchPaths> 64 | <Parsing> 65 | <SyntaxOptions> 66 | <SyntaxMode Value="Delphi"/> 67 | </SyntaxOptions> 68 | </Parsing> 69 | <CodeGeneration> 70 | <SmartLinkUnit Value="True"/> 71 | <Optimizations> 72 | <OptimizationLevel Value="3"/> 73 | </Optimizations> 74 | </CodeGeneration> 75 | <Linking> 76 | <Debugging> 77 | <GenerateDebugInfo Value="False"/> 78 | <StripSymbols Value="True"/> 79 | </Debugging> 80 | <LinkSmart Value="True"/> 81 | <Options> 82 | <Win32> 83 | <GraphicApplication Value="True"/> 84 | </Win32> 85 | </Options> 86 | </Linking> 87 | </CompilerOptions> 88 | <Debugging> 89 | <Exceptions Count="3"> 90 | <Item1> 91 | <Name Value="EAbort"/> 92 | </Item1> 93 | <Item2> 94 | <Name Value="ECodetoolError"/> 95 | </Item2> 96 | <Item3> 97 | <Name Value="EFOpenError"/> 98 | </Item3> 99 | </Exceptions> 100 | </Debugging> 101 | </CONFIG> 102 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/BasicSoft/BasicSoft.lpr: -------------------------------------------------------------------------------- 1 | program BasicSoft; 2 | 3 | uses 4 | {$IFDEF UNIX}{$IFDEF UseCThreads} 5 | cthreads, 6 | {$ENDIF}{$ENDIF} 7 | Interfaces, // this includes the LCL widgetset 8 | Forms, MainFm 9 | { you can add units after this }; 10 | 11 | {$R *.res} 12 | 13 | begin 14 | RequireDerivedFormResource := True; 15 | Application.Initialize; 16 | Application.CreateForm(TMainForm, MainForm); 17 | Application.Run; 18 | end. 19 | 20 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/BasicSoft/BasicSoft.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/BasicSoft/BasicSoft.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/BasicSoft/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 475 4 | Top = 120 5 | Width = 640 6 | Caption = 'PXL Basic Demo (software renderer)' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnPaint = FormPaint 10 | OnResize = FormResize 11 | Position = poScreenCenter 12 | LCLVersion = '1.5' 13 | end 14 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Combustion/Combustion.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="Combustion"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | </General> 16 | <i18n> 17 | <EnableI18N LFM="False"/> 18 | </i18n> 19 | <VersionInfo> 20 | <StringTable ProductVersion=""/> 21 | </VersionInfo> 22 | <BuildModes Count="1"> 23 | <Item1 Name="Default" Default="True"/> 24 | </BuildModes> 25 | <PublishOptions> 26 | <Version Value="2"/> 27 | </PublishOptions> 28 | <RunParams> 29 | <local> 30 | <FormatVersion Value="1"/> 31 | </local> 32 | </RunParams> 33 | <RequiredPackages Count="1"> 34 | <Item1> 35 | <PackageName Value="LCL"/> 36 | </Item1> 37 | </RequiredPackages> 38 | <Units Count="2"> 39 | <Unit0> 40 | <Filename Value="Combustion.lpr"/> 41 | <IsPartOfProject Value="True"/> 42 | </Unit0> 43 | <Unit1> 44 | <Filename Value="MainFm.pas"/> 45 | <IsPartOfProject Value="True"/> 46 | <ComponentName Value="MainForm"/> 47 | <HasResources Value="True"/> 48 | <ResourceBaseClass Value="Form"/> 49 | </Unit1> 50 | </Units> 51 | </ProjectOptions> 52 | <CompilerOptions> 53 | <Version Value="11"/> 54 | <PathDelim Value="\"/> 55 | <Target> 56 | <Filename Value="Combustion"/> 57 | </Target> 58 | <SearchPaths> 59 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 60 | <OtherUnitFiles Value="..\..\..\..\Source"/> 61 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 62 | </SearchPaths> 63 | <Parsing> 64 | <SyntaxOptions> 65 | <SyntaxMode Value="Delphi"/> 66 | </SyntaxOptions> 67 | </Parsing> 68 | <CodeGeneration> 69 | <SmartLinkUnit Value="True"/> 70 | <Optimizations> 71 | <OptimizationLevel Value="3"/> 72 | </Optimizations> 73 | </CodeGeneration> 74 | <Linking> 75 | <Debugging> 76 | <GenerateDebugInfo Value="False"/> 77 | <StripSymbols Value="True"/> 78 | </Debugging> 79 | <LinkSmart Value="True"/> 80 | <Options> 81 | <Win32> 82 | <GraphicApplication Value="True"/> 83 | </Win32> 84 | </Options> 85 | </Linking> 86 | </CompilerOptions> 87 | <Debugging> 88 | <Exceptions Count="3"> 89 | <Item1> 90 | <Name Value="EAbort"/> 91 | </Item1> 92 | <Item2> 93 | <Name Value="ECodetoolError"/> 94 | </Item2> 95 | <Item3> 96 | <Name Value="EFOpenError"/> 97 | </Item3> 98 | </Exceptions> 99 | </Debugging> 100 | </CONFIG> 101 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Combustion/Combustion.lpr: -------------------------------------------------------------------------------- 1 | program Combustion; 2 | 3 | uses 4 | {$IFDEF UNIX}{$IFDEF UseCThreads} 5 | cthreads, 6 | {$ENDIF}{$ENDIF} 7 | Interfaces, // this includes the LCL widgetset 8 | Forms, MainFm 9 | { you can add units after this }; 10 | 11 | {$R *.res} 12 | 13 | begin 14 | RequireDerivedFormResource := True; 15 | Application.Initialize; 16 | Application.CreateForm(TMainForm, MainForm); 17 | Application.Run; 18 | end. 19 | 20 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Combustion/Combustion.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Combustion/Combustion.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Combustion/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 249 3 | Height = 475 4 | Top = 118 5 | Width = 640 6 | Caption = 'Old "Combustion" sample ported to PXL' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnResize = FormResize 10 | Position = poScreenCenter 11 | LCLVersion = '1.9.0.0' 12 | end 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Combustion/media.vtdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Combustion/media.vtdb -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/FullScreenApp/FullScreenApp.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="FullScreenApp"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | <Icon Value="0"/> 16 | </General> 17 | <i18n> 18 | <EnableI18N LFM="False"/> 19 | </i18n> 20 | <VersionInfo> 21 | <StringTable ProductVersion=""/> 22 | </VersionInfo> 23 | <BuildModes Count="1"> 24 | <Item1 Name="Default" Default="True"/> 25 | </BuildModes> 26 | <PublishOptions> 27 | <Version Value="2"/> 28 | </PublishOptions> 29 | <RunParams> 30 | <local> 31 | <FormatVersion Value="1"/> 32 | </local> 33 | </RunParams> 34 | <RequiredPackages Count="1"> 35 | <Item1> 36 | <PackageName Value="LCL"/> 37 | </Item1> 38 | </RequiredPackages> 39 | <Units Count="3"> 40 | <Unit0> 41 | <Filename Value="FullScreenApp.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | </Unit0> 44 | <Unit1> 45 | <Filename Value="MainFm.pas"/> 46 | <IsPartOfProject Value="True"/> 47 | <ComponentName Value="MainForm"/> 48 | <HasResources Value="True"/> 49 | <ResourceBaseClass Value="Form"/> 50 | </Unit1> 51 | <Unit2> 52 | <Filename Value="SecondFm.pas"/> 53 | <IsPartOfProject Value="True"/> 54 | <ComponentName Value="SecondForm"/> 55 | <HasResources Value="True"/> 56 | <ResourceBaseClass Value="Form"/> 57 | </Unit2> 58 | </Units> 59 | </ProjectOptions> 60 | <CompilerOptions> 61 | <Version Value="11"/> 62 | <PathDelim Value="\"/> 63 | <Target> 64 | <Filename Value="FullScreenApp"/> 65 | </Target> 66 | <SearchPaths> 67 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 68 | <OtherUnitFiles Value="..\..\..\..\Source"/> 69 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 70 | </SearchPaths> 71 | <Parsing> 72 | <SyntaxOptions> 73 | <SyntaxMode Value="Delphi"/> 74 | </SyntaxOptions> 75 | </Parsing> 76 | <CodeGeneration> 77 | <SmartLinkUnit Value="True"/> 78 | <Optimizations> 79 | <OptimizationLevel Value="3"/> 80 | </Optimizations> 81 | </CodeGeneration> 82 | <Linking> 83 | <Debugging> 84 | <GenerateDebugInfo Value="False"/> 85 | <StripSymbols Value="True"/> 86 | </Debugging> 87 | <LinkSmart Value="True"/> 88 | <Options> 89 | <Win32> 90 | <GraphicApplication Value="True"/> 91 | </Win32> 92 | </Options> 93 | </Linking> 94 | </CompilerOptions> 95 | <Debugging> 96 | <Exceptions Count="3"> 97 | <Item1> 98 | <Name Value="EAbort"/> 99 | </Item1> 100 | <Item2> 101 | <Name Value="ECodetoolError"/> 102 | </Item2> 103 | <Item3> 104 | <Name Value="EFOpenError"/> 105 | </Item3> 106 | </Exceptions> 107 | </Debugging> 108 | </CONFIG> 109 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/FullScreenApp/FullScreenApp.lpr: -------------------------------------------------------------------------------- 1 | program FullScreenApp; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, MainFm, SecondFm 11 | { you can add units after this }; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | RequireDerivedFormResource := True; 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/FullScreenApp/FullScreenApp.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/FullScreenApp/FullScreenApp.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/FullScreenApp/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 480 4 | Top = 115 5 | Width = 640 6 | Caption = 'PXL FullScreen Demo' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnKeyDown = FormKeyDown 10 | OnResize = FormResize 11 | LCLVersion = '1.5' 12 | end 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/FullScreenApp/SecondFm.lfm: -------------------------------------------------------------------------------- 1 | object SecondForm: TSecondForm 2 | Left = 250 3 | Height = 300 4 | Top = 119 5 | Width = 400 6 | Caption = 'PXL Secondary Demo Form' 7 | OnClose = FormClose 8 | OnKeyDown = FormKeyDown 9 | OnResize = FormResize 10 | LCLVersion = '1.3' 11 | end 12 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/FullScreenApp/SecondFm.pas: -------------------------------------------------------------------------------- 1 | unit SecondFm; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | uses 17 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs; 18 | 19 | type 20 | TSecondForm = class(TForm) 21 | procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); 22 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 23 | procedure FormResize(Sender: TObject); 24 | private 25 | { private declarations } 26 | public 27 | { public declarations } 28 | end; 29 | 30 | var 31 | SecondForm: TSecondForm; 32 | 33 | implementation 34 | {$R *.lfm} 35 | 36 | uses 37 | LCLType, PXL.Types, MainFm; 38 | 39 | procedure TSecondForm.FormResize(Sender: TObject); 40 | begin 41 | if MainForm <> nil then 42 | begin 43 | MainForm.SecondarySize := Point2i(ClientWidth, ClientHeight); 44 | 45 | if MainForm.EngineDevice <> nil then 46 | MainForm.EngineDevice.Resize(1, MainForm.SecondarySize); 47 | end; 48 | end; 49 | 50 | procedure TSecondForm.FormClose(Sender: TObject; var CloseAction: TCloseAction); 51 | begin 52 | if (MainForm <> nil) and MainForm.Visible then 53 | MainForm.Close; 54 | end; 55 | 56 | procedure TSecondForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 57 | begin 58 | if Key = VK_ESCAPE then 59 | Close; 60 | end; 61 | 62 | end. 63 | 64 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/Engine.Globals.pas: -------------------------------------------------------------------------------- 1 | unit Engine.Globals; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Special note: this code was ported multiple times from earliest framework releases predating Asphyre. } 19 | 20 | uses 21 | PXL.Types, PXL.SwapChains, PXL.Canvas, PXL.Images, PXL.Fonts, PXL.Archives; 22 | 23 | var 24 | DisplaySize: TPoint2i; 25 | 26 | EngineDevice: TCustomSwapChainDevice = nil; 27 | EngineCanvas: TCustomCanvas = nil; 28 | EngineImages: TAtlasImages = nil; 29 | EngineFonts: TBitmapFonts = nil; 30 | EngineArchive: TArchive = nil; 31 | 32 | ImageBackground: Integer = -1; 33 | ImageShipArmor: Integer = -1; 34 | ImageCShineLogo: Integer = -1; 35 | ImageBandLogo: Integer = -1; 36 | ImageLogo: Integer = -1; 37 | ImageShip: Integer = -1; 38 | ImageRock: Integer = -1; 39 | ImageTorpedo: Integer = -1; 40 | ImageExplode: Integer = -1; 41 | ImageCombust: Integer = -1; 42 | 43 | FontArialBlack: Integer = -1; 44 | FontTimesRoman: Integer = -1; 45 | FontImpact: Integer = -1; 46 | 47 | implementation 48 | 49 | end. 50 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/Hasteroids.lpr: -------------------------------------------------------------------------------- 1 | program Hasteroids; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, MainFm, StartFm 11 | { you can add units after this }; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | RequireDerivedFormResource := True; 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/Hasteroids.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Hasteroids/Hasteroids.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 480 4 | Top = 120 5 | Width = 640 6 | Caption = 'Hasteroids' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnKeyDown = FormKeyDown 10 | OnKeyUp = FormKeyUp 11 | OnResize = FormResize 12 | Position = poScreenCenter 13 | LCLVersion = '1.5' 14 | end 15 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/Scene.Objects.Ships.inc: -------------------------------------------------------------------------------- 1 | const 2 | ShipCoords: array[0..31, 0..2] of TPoint2i = ( 3 | ((X: 51; Y: 38), (X: 12; Y: 38), (X: 32; Y: 17)), 4 | ((X: 51; Y: 33), (X: 13; Y: 40), (X: 28; Y: 17)), 5 | ((X: 50; Y: 30), (X: 15; Y: 43), (X: 24; Y: 18)), 6 | ((X: 49; Y: 27), (X: 16; Y: 45), (X: 21; Y: 19)), 7 | ((X: 48; Y: 23), (X: 19; Y: 44), (X: 19; Y: 21)), 8 | ((X: 46; Y: 21), (X: 22; Y: 47), (X: 17; Y: 23)), 9 | ((X: 45; Y: 19), (X: 29; Y: 48), (X: 16; Y: 25)), 10 | ((X: 41; Y: 17), (X: 34; Y: 48), (X: 15; Y: 27)), 11 | ((X: 38; Y: 16), (X: 40; Y: 47), (X: 15; Y: 32)), 12 | ((X: 35; Y: 15), (X: 44; Y: 46), (X: 17; Y: 35)), 13 | ((X: 31; Y: 15), (X: 50; Y: 42), (X: 18; Y: 37)), 14 | ((X: 28; Y: 15), (X: 52; Y: 38), (X: 19; Y: 39)), 15 | ((X: 25; Y: 16), (X: 54; Y: 34), (X: 20; Y: 40)), 16 | ((X: 21; Y: 16), (X: 54; Y: 30), (X: 23; Y: 42)), 17 | ((X: 19; Y: 17), (X: 53; Y: 27), (X: 27; Y: 43)), 18 | ((X: 16; Y: 20), (X: 52; Y: 24), (X: 30; Y: 44)), 19 | ((X: 12; Y: 22), (X: 50; Y: 22), (X: 32; Y: 44)), 20 | ((X: 11; Y: 26), (X: 46; Y: 20), (X: 35; Y: 44)), 21 | ((X: 10; Y: 28), (X: 44; Y: 19), (X: 38; Y: 43)), 22 | ((X: 10; Y: 32), (X: 42; Y: 16), (X: 40; Y: 42)), 23 | ((X: 11; Y: 35), (X: 38; Y: 16), (X: 44; Y: 40)), 24 | ((X: 12; Y: 38), (X: 35; Y: 15), (X: 42; Y: 39)), 25 | ((X: 14; Y: 41), (X: 31; Y: 15), (X: 45; Y: 37)), 26 | ((X: 18; Y: 44), (X: 28; Y: 15), (X: 46; Y: 35)), 27 | ((X: 23; Y: 47), (X: 25; Y: 16), (X: 48; Y: 31)), 28 | ((X: 27; Y: 49), (X: 22; Y: 17), (X: 48; Y: 27)), 29 | ((X: 32; Y: 50), (X: 19; Y: 19), (X: 47; Y: 25)), 30 | ((X: 37; Y: 49), (X: 16; Y: 22), (X: 45; Y: 23)), 31 | ((X: 41; Y: 46), (X: 14; Y: 25), (X: 44; Y: 21)), 32 | ((X: 44; Y: 45), (X: 12; Y: 29), (X: 39; Y: 19)), 33 | ((X: 47; Y: 44), (X: 12; Y: 32), (X: 37; Y: 18)), 34 | ((X: 49; Y: 41), (X: 12; Y: 34), (X: 33; Y: 17))); 35 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/Sound.Globals.pas: -------------------------------------------------------------------------------- 1 | unit Sound.Globals; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Special note: this code was ported multiple times from earliest framework releases predating Asphyre. } 19 | 20 | uses 21 | bass; 22 | 23 | var 24 | MusicModule: HMusic = 0; 25 | EffectSamples: array[0..3] of HSample; 26 | 27 | procedure PlaySample(const Sample: HSample; const Volume: Integer); 28 | 29 | implementation 30 | 31 | procedure PlaySample(const Sample: HSample; const Volume: Integer); 32 | var 33 | Channel: HChannel; 34 | begin 35 | Channel := BASS_SampleGetChannel(Sample, False); 36 | if Channel <> 0 then 37 | begin 38 | BASS_ChannelSetAttribute(Channel, BASS_ATTRIB_VOL, Volume / 100.0); 39 | BASS_ChannelPlay(Channel, True); 40 | end; 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/StartFm.pas: -------------------------------------------------------------------------------- 1 | unit StartFm; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Special note: this code was ported multiple times from earliest framework releases predating Asphyre. } 19 | 20 | uses 21 | SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, PXL.TypeDef, PXL.Providers; 22 | 23 | type 24 | TStartForm = class(TForm) 25 | LogoImage: TImage; 26 | TopBevel: TBevel; 27 | NameGroup: TGroupBox; 28 | NameEdit: TEdit; 29 | ConfigGroup: TGroupBox; 30 | PlayButton: TBitBtn; 31 | CloseButton: TBitBtn; 32 | VSyncBox: TCheckBox; 33 | ProviderBox: TComboBox; 34 | procedure FormCreate(Sender: TObject); 35 | private 36 | { Private declarations } 37 | function GetVSync: Boolean; 38 | function GetPlayerName: UniString; 39 | public 40 | { Public declarations } 41 | function CreateProvider: TGraphicsDeviceProvider; 42 | 43 | property VSync: Boolean read GetVSync; 44 | property PlayerName: UniString read GetPlayerName; 45 | end; 46 | 47 | var 48 | StartForm: TStartForm; 49 | 50 | implementation 51 | {$R *.lfm} 52 | 53 | uses 54 | {$IFDEF MSWINDOWS} 55 | {$IFDEF CPUX86}PXL.Providers.DX7,{$ENDIF} PXL.Providers.DX9, PXL.Providers.DX11, 56 | {$ELSE} 57 | {$IFNDEF DARWIN} 58 | PXL.Providers.GLES, 59 | {$ENDIF} 60 | {$ENDIF} 61 | 62 | PXL.Providers.SRT, PXL.Providers.GL; 63 | 64 | procedure TStartForm.FormCreate(Sender: TObject); 65 | begin 66 | ProviderBox.Items.Add('Software'); 67 | {$IFDEF MSWINDOWS} 68 | ProviderBox.Items.Add('DirectX 11'); 69 | ProviderBox.Items.Add('DirectX 9'); 70 | ProviderBox.Items.Add('OpenGL'); 71 | {$IFDEF CPUX86} 72 | ProviderBox.Items.Add('DirectX 7'); 73 | {$ENDIF} 74 | {$ELSE} 75 | ProviderBox.Items.Add('OpenGL'); 76 | {$IFNDEF DARWIN} 77 | ProviderBox.Items.Add('OpenGL ES'); 78 | {$ENDIF} 79 | {$ENDIF} 80 | ProviderBox.ItemIndex := 1; 81 | end; 82 | 83 | function TStartForm.GetVSync: Boolean; 84 | begin 85 | Result := VSyncBox.Checked; 86 | end; 87 | 88 | function TStartForm.GetPlayerName: UniString; 89 | begin 90 | Result := NameEdit.Text; 91 | end; 92 | 93 | function TStartForm.CreateProvider: TGraphicsDeviceProvider; 94 | begin 95 | case ProviderBox.ItemIndex of 96 | 0: Result := TSRTProvider.Create(nil); 97 | {$IFDEF MSWINDOWS} 98 | 1: Result := TDX11Provider.Create(nil); 99 | 2: Result := TDX9Provider.Create(nil); 100 | 3: Result := TGLProvider.Create(nil); 101 | {$IFDEF CPUX86} 102 | 4: Result := TDX7Provider.Create(nil); 103 | {$ENDIF} 104 | {$ELSE} 105 | 1: Result := TGLProvider.Create(nil); 106 | {$IFNDEF DARWIN} 107 | 2: Result := TGLESProvider.Create(nil); 108 | {$ENDIF} 109 | {$ENDIF} 110 | end; 111 | end; 112 | 113 | end. 114 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Hasteroids/media.asvf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Hasteroids/media.asvf -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Networking/Networking.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="Networking"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <Icon Value="0"/> 13 | </General> 14 | <i18n> 15 | <EnableI18N LFM="False"/> 16 | </i18n> 17 | <VersionInfo> 18 | <StringTable ProductVersion=""/> 19 | </VersionInfo> 20 | <BuildModes Count="1"> 21 | <Item1 Name="Default" Default="True"/> 22 | </BuildModes> 23 | <PublishOptions> 24 | <Version Value="2"/> 25 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 26 | <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/> 27 | </PublishOptions> 28 | <RunParams> 29 | <local> 30 | <FormatVersion Value="1"/> 31 | </local> 32 | </RunParams> 33 | <RequiredPackages Count="1"> 34 | <Item1> 35 | <PackageName Value="LCL"/> 36 | </Item1> 37 | </RequiredPackages> 38 | <Units Count="2"> 39 | <Unit0> 40 | <Filename Value="Networking.lpr"/> 41 | <IsPartOfProject Value="True"/> 42 | </Unit0> 43 | <Unit1> 44 | <Filename Value="MainFm.pas"/> 45 | <IsPartOfProject Value="True"/> 46 | <ComponentName Value="MainForm"/> 47 | <HasResources Value="True"/> 48 | <ResourceBaseClass Value="Form"/> 49 | </Unit1> 50 | </Units> 51 | </ProjectOptions> 52 | <CompilerOptions> 53 | <Version Value="11"/> 54 | <PathDelim Value="\"/> 55 | <Target> 56 | <Filename Value="Networking"/> 57 | </Target> 58 | <SearchPaths> 59 | <IncludeFiles Value="..\..\..\..\Source;$(ProjOutDir)"/> 60 | <OtherUnitFiles Value="..\..\..\..\Source"/> 61 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 62 | </SearchPaths> 63 | <Parsing> 64 | <SyntaxOptions> 65 | <SyntaxMode Value="Delphi"/> 66 | </SyntaxOptions> 67 | </Parsing> 68 | <CodeGeneration> 69 | <SmartLinkUnit Value="True"/> 70 | <Optimizations> 71 | <OptimizationLevel Value="3"/> 72 | <VariablesInRegisters Value="True"/> 73 | </Optimizations> 74 | </CodeGeneration> 75 | <Linking> 76 | <Debugging> 77 | <GenerateDebugInfo Value="False"/> 78 | <StripSymbols Value="True"/> 79 | </Debugging> 80 | <LinkSmart Value="True"/> 81 | <Options> 82 | <Win32> 83 | <GraphicApplication Value="True"/> 84 | </Win32> 85 | </Options> 86 | </Linking> 87 | </CompilerOptions> 88 | <Debugging> 89 | <Exceptions Count="3"> 90 | <Item1> 91 | <Name Value="EAbort"/> 92 | </Item1> 93 | <Item2> 94 | <Name Value="ECodetoolError"/> 95 | </Item2> 96 | <Item3> 97 | <Name Value="EFOpenError"/> 98 | </Item3> 99 | </Exceptions> 100 | </Debugging> 101 | </CONFIG> 102 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Networking/Networking.lpr: -------------------------------------------------------------------------------- 1 | program Networking; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, MainFm 11 | { you can add units after this }; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | RequireDerivedFormResource := True; 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Networking/Networking.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Networking/Networking.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Plasma/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 512 4 | Top = 111 5 | Width = 512 6 | Caption = 'PXL Plasma Sample' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnResize = FormResize 10 | Position = poScreenCenter 11 | LCLVersion = '1.9.0.0' 12 | end 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Plasma/Plasma.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="10"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="Plasma"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | </General> 13 | <i18n> 14 | <EnableI18N LFM="False"/> 15 | </i18n> 16 | <BuildModes Count="1"> 17 | <Item1 Name="Default" Default="True"/> 18 | </BuildModes> 19 | <PublishOptions> 20 | <Version Value="2"/> 21 | </PublishOptions> 22 | <RunParams> 23 | <local> 24 | <FormatVersion Value="1"/> 25 | </local> 26 | </RunParams> 27 | <RequiredPackages Count="1"> 28 | <Item1> 29 | <PackageName Value="LCL"/> 30 | </Item1> 31 | </RequiredPackages> 32 | <Units Count="2"> 33 | <Unit0> 34 | <Filename Value="Plasma.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | <Unit1> 38 | <Filename Value="MainFm.pas"/> 39 | <IsPartOfProject Value="True"/> 40 | <ComponentName Value="MainForm"/> 41 | <HasResources Value="True"/> 42 | <ResourceBaseClass Value="Form"/> 43 | </Unit1> 44 | </Units> 45 | </ProjectOptions> 46 | <CompilerOptions> 47 | <Version Value="11"/> 48 | <PathDelim Value="\"/> 49 | <Target> 50 | <Filename Value="Plasma"/> 51 | </Target> 52 | <SearchPaths> 53 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 54 | <OtherUnitFiles Value="..\..\..\..\Source"/> 55 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 56 | </SearchPaths> 57 | <Parsing> 58 | <SyntaxOptions> 59 | <SyntaxMode Value="Delphi"/> 60 | </SyntaxOptions> 61 | </Parsing> 62 | <CodeGeneration> 63 | <SmartLinkUnit Value="True"/> 64 | <Optimizations> 65 | <OptimizationLevel Value="3"/> 66 | </Optimizations> 67 | </CodeGeneration> 68 | <Linking> 69 | <Debugging> 70 | <GenerateDebugInfo Value="False"/> 71 | <StripSymbols Value="True"/> 72 | </Debugging> 73 | <LinkSmart Value="True"/> 74 | <Options> 75 | <Win32> 76 | <GraphicApplication Value="True"/> 77 | </Win32> 78 | </Options> 79 | </Linking> 80 | </CompilerOptions> 81 | <Debugging> 82 | <Exceptions Count="3"> 83 | <Item1> 84 | <Name Value="EAbort"/> 85 | </Item1> 86 | <Item2> 87 | <Name Value="ECodetoolError"/> 88 | </Item2> 89 | <Item3> 90 | <Name Value="EFOpenError"/> 91 | </Item3> 92 | </Exceptions> 93 | </Debugging> 94 | </CONFIG> 95 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Plasma/Plasma.lpr: -------------------------------------------------------------------------------- 1 | program Plasma; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, MainFm 11 | { you can add units after this }; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | RequireDerivedFormResource:=True; 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Plasma/Plasma.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Plasma/Plasma.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Shapes/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 475 4 | Top = 120 5 | Width = 640 6 | Caption = 'PXL Shapes Demo' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnResize = FormResize 10 | Position = poScreenCenter 11 | LCLVersion = '1.9.0.0' 12 | end 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Shapes/Shapes.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="Shapes"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | <Icon Value="0"/> 16 | </General> 17 | <i18n> 18 | <EnableI18N LFM="False"/> 19 | </i18n> 20 | <VersionInfo> 21 | <StringTable ProductVersion=""/> 22 | </VersionInfo> 23 | <BuildModes Count="1"> 24 | <Item1 Name="Default" Default="True"/> 25 | </BuildModes> 26 | <PublishOptions> 27 | <Version Value="2"/> 28 | </PublishOptions> 29 | <RunParams> 30 | <local> 31 | <FormatVersion Value="1"/> 32 | </local> 33 | </RunParams> 34 | <RequiredPackages Count="1"> 35 | <Item1> 36 | <PackageName Value="LCL"/> 37 | </Item1> 38 | </RequiredPackages> 39 | <Units Count="2"> 40 | <Unit0> 41 | <Filename Value="Shapes.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | </Unit0> 44 | <Unit1> 45 | <Filename Value="MainFm.pas"/> 46 | <IsPartOfProject Value="True"/> 47 | <ComponentName Value="MainForm"/> 48 | <HasResources Value="True"/> 49 | <ResourceBaseClass Value="Form"/> 50 | </Unit1> 51 | </Units> 52 | </ProjectOptions> 53 | <CompilerOptions> 54 | <Version Value="11"/> 55 | <PathDelim Value="\"/> 56 | <Target> 57 | <Filename Value="Shapes"/> 58 | </Target> 59 | <SearchPaths> 60 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 61 | <OtherUnitFiles Value="..\..\..\..\Source"/> 62 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 63 | </SearchPaths> 64 | <Parsing> 65 | <SyntaxOptions> 66 | <SyntaxMode Value="Delphi"/> 67 | </SyntaxOptions> 68 | </Parsing> 69 | <CodeGeneration> 70 | <SmartLinkUnit Value="True"/> 71 | <Optimizations> 72 | <OptimizationLevel Value="3"/> 73 | </Optimizations> 74 | </CodeGeneration> 75 | <Linking> 76 | <Debugging> 77 | <GenerateDebugInfo Value="False"/> 78 | <StripSymbols Value="True"/> 79 | </Debugging> 80 | <LinkSmart Value="True"/> 81 | <Options> 82 | <Win32> 83 | <GraphicApplication Value="True"/> 84 | </Win32> 85 | </Options> 86 | </Linking> 87 | </CompilerOptions> 88 | <Debugging> 89 | <Exceptions Count="3"> 90 | <Item1> 91 | <Name Value="EAbort"/> 92 | </Item1> 93 | <Item2> 94 | <Name Value="ECodetoolError"/> 95 | </Item2> 96 | <Item3> 97 | <Name Value="EFOpenError"/> 98 | </Item3> 99 | </Exceptions> 100 | </Debugging> 101 | </CONFIG> 102 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Shapes/Shapes.lpr: -------------------------------------------------------------------------------- 1 | program Shapes; 2 | 3 | uses 4 | {$IFDEF UNIX}{$IFDEF UseCThreads} 5 | cthreads, 6 | {$ENDIF}{$ENDIF} 7 | Interfaces, // this includes the LCL widgetset 8 | Forms, MainFm 9 | { you can add units after this }; 10 | 11 | {$R *.res} 12 | 13 | begin 14 | RequireDerivedFormResource := True; 15 | Application.Initialize; 16 | Application.CreateForm(TMainForm, MainForm); 17 | Application.Run; 18 | end. 19 | 20 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Shapes/Shapes.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Shapes/Shapes.res -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Tunnel/MainFm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 243 3 | Height = 720 4 | Top = 120 5 | Width = 720 6 | Caption = 'PXL Tunnel Demo' 7 | OnCreate = FormCreate 8 | OnDestroy = FormDestroy 9 | OnResize = FormResize 10 | Position = poScreenCenter 11 | LCLVersion = '1.5' 12 | end 13 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Tunnel/Tunnel.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <Title Value="Tunnel"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | <Icon Value="0"/> 16 | </General> 17 | <i18n> 18 | <EnableI18N LFM="False"/> 19 | </i18n> 20 | <VersionInfo> 21 | <StringTable ProductVersion=""/> 22 | </VersionInfo> 23 | <BuildModes Count="1"> 24 | <Item1 Name="Default" Default="True"/> 25 | </BuildModes> 26 | <PublishOptions> 27 | <Version Value="2"/> 28 | </PublishOptions> 29 | <RunParams> 30 | <local> 31 | <FormatVersion Value="1"/> 32 | </local> 33 | </RunParams> 34 | <RequiredPackages Count="1"> 35 | <Item1> 36 | <PackageName Value="LCL"/> 37 | </Item1> 38 | </RequiredPackages> 39 | <Units Count="2"> 40 | <Unit0> 41 | <Filename Value="Tunnel.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | </Unit0> 44 | <Unit1> 45 | <Filename Value="MainFm.pas"/> 46 | <IsPartOfProject Value="True"/> 47 | <ComponentName Value="MainForm"/> 48 | <HasResources Value="True"/> 49 | <ResourceBaseClass Value="Form"/> 50 | </Unit1> 51 | </Units> 52 | </ProjectOptions> 53 | <CompilerOptions> 54 | <Version Value="11"/> 55 | <PathDelim Value="\"/> 56 | <Target> 57 | <Filename Value="Tunnel"/> 58 | </Target> 59 | <SearchPaths> 60 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\Source"/> 61 | <OtherUnitFiles Value="..\..\..\..\Source"/> 62 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 63 | </SearchPaths> 64 | <Parsing> 65 | <SyntaxOptions> 66 | <SyntaxMode Value="Delphi"/> 67 | </SyntaxOptions> 68 | </Parsing> 69 | <CodeGeneration> 70 | <SmartLinkUnit Value="True"/> 71 | <Optimizations> 72 | <OptimizationLevel Value="3"/> 73 | </Optimizations> 74 | </CodeGeneration> 75 | <Linking> 76 | <Debugging> 77 | <GenerateDebugInfo Value="False"/> 78 | <StripSymbols Value="True"/> 79 | </Debugging> 80 | <LinkSmart Value="True"/> 81 | <Options> 82 | <Win32> 83 | <GraphicApplication Value="True"/> 84 | </Win32> 85 | </Options> 86 | </Linking> 87 | </CompilerOptions> 88 | <Debugging> 89 | <Exceptions Count="3"> 90 | <Item1> 91 | <Name Value="EAbort"/> 92 | </Item1> 93 | <Item2> 94 | <Name Value="ECodetoolError"/> 95 | </Item2> 96 | <Item3> 97 | <Name Value="EFOpenError"/> 98 | </Item3> 99 | </Exceptions> 100 | </Debugging> 101 | </CONFIG> 102 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Tunnel/Tunnel.lpr: -------------------------------------------------------------------------------- 1 | program Tunnel; 2 | 3 | uses 4 | {$IFDEF UNIX}{$IFDEF UseCThreads} 5 | cthreads, 6 | {$ENDIF}{$ENDIF} 7 | Interfaces, // this includes the LCL widgetset 8 | Forms, MainFm 9 | { you can add units after this }; 10 | 11 | {$R *.res} 12 | 13 | begin 14 | RequireDerivedFormResource := True; 15 | Application.Initialize; 16 | Application.CreateForm(TMainForm, MainForm); 17 | Application.Run; 18 | end. 19 | 20 | -------------------------------------------------------------------------------- /Samples/FreePascal/Desktop/Tunnel/Tunnel.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/Desktop/Tunnel/Tunnel.res -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/Blinky/Blinky-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/Blinky/Blinky-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/Blinky/Blinky-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/Blinky/Blinky-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/Blinky/Blinky.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <General> 6 | <Flags> 7 | <LRSInOutputDirectory Value="False"/> 8 | </Flags> 9 | <SessionStorage Value="InProjectDir"/> 10 | <MainUnit Value="0"/> 11 | <UseAppBundle Value="False"/> 12 | <ResourceType Value="res"/> 13 | </General> 14 | <VersionInfo> 15 | <StringTable ProductVersion=""/> 16 | </VersionInfo> 17 | <BuildModes Count="1"> 18 | <Item1 Name="Default" Default="True"/> 19 | </BuildModes> 20 | <PublishOptions> 21 | <Version Value="2"/> 22 | </PublishOptions> 23 | <RunParams> 24 | <local> 25 | <FormatVersion Value="1"/> 26 | </local> 27 | </RunParams> 28 | <Units Count="1"> 29 | <Unit0> 30 | <Filename Value="Blinky.lpr"/> 31 | <IsPartOfProject Value="True"/> 32 | </Unit0> 33 | </Units> 34 | </ProjectOptions> 35 | <CompilerOptions> 36 | <Version Value="11"/> 37 | <PathDelim Value="\"/> 38 | <Target> 39 | <Filename Value="Blinky"/> 40 | </Target> 41 | <SearchPaths> 42 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 43 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 44 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 45 | </SearchPaths> 46 | <Parsing> 47 | <SyntaxOptions> 48 | <SyntaxMode Value="Delphi"/> 49 | </SyntaxOptions> 50 | </Parsing> 51 | <CodeGeneration> 52 | <SmartLinkUnit Value="True"/> 53 | <TargetCPU Value="i386"/> 54 | <TargetOS Value="linux"/> 55 | <Optimizations> 56 | <OptimizationLevel Value="3"/> 57 | </Optimizations> 58 | </CodeGeneration> 59 | <Linking> 60 | <Debugging> 61 | <GenerateDebugInfo Value="False"/> 62 | <StripSymbols Value="True"/> 63 | </Debugging> 64 | <LinkSmart Value="True"/> 65 | </Linking> 66 | <Other> 67 | <CustomOptions Value="-dSINGLEBOARD"/> 68 | </Other> 69 | </CompilerOptions> 70 | </CONFIG> 71 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/Blinky/Blinky.lpr: -------------------------------------------------------------------------------- 1 | program Blinky; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | { 15 | This example illustrates how to blink a LED on Intel Galileo. 16 | 17 | Attention! Please follow these instructions before running the sample: 18 | 19 | 1. PinLED constant should contain pin number to which positive LED terminal is connected to. 20 | 21 | 2. After compiling and uploading this sample, change its attributes to executable. Something like this: 22 | chmod +x Blinky 23 | ./Blinky 24 | 25 | 3. Check the accompanying diagram and photo to see an example on how the wiring should be made. 26 | } 27 | uses 28 | Crt, PXL.Timing, PXL.Boards.Types, PXL.Boards.Galileo; 29 | 30 | const 31 | PinLED = 7; 32 | 33 | var 34 | GPIO: TCustomGPIO = nil; 35 | TurnedOn: Boolean = False; 36 | begin 37 | GPIO := TGalileoGPIO.Create; 38 | try 39 | // Switch LED pin for output. 40 | GPIO.PinMode[PinLED] := TPinMode.Output; 41 | 42 | WriteLn('Blinking LED, press any key to exit...'); 43 | 44 | while not KeyPressed do 45 | begin 46 | TurnedOn := not TurnedOn; 47 | 48 | if TurnedOn then 49 | GPIO.PinValue[PinLED] := TPinValue.High 50 | else 51 | GPIO.PinValue[PinLED] := TPinValue.Low; 52 | 53 | MicroSleep(500000); // wait for 500 ms 54 | end; 55 | 56 | // Eat the key pressed so it won't go to terminal after we exit. 57 | ReadKey; 58 | 59 | // Turn the LED off after we are done and switch it to "Input" just to be safe. 60 | GPIO.PinMode[PinLED] := TPinMode.Input; 61 | finally 62 | GPIO.Free; 63 | end; 64 | end. 65 | 66 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplayI2C/DisplayI2C-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/DisplayI2C/DisplayI2C-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplayI2C/DisplayI2C-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/DisplayI2C/DisplayI2C-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplayI2C/DisplayI2C.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplayI2C.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplayI2C"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="i386"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI-Screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI-Screenshot.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Galileo/DisplaySPI/DisplaySPI.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplaySPI.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplaySPI"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="i386"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/Blinky/Blinky-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/Blinky/Blinky-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/Blinky/Blinky-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/Blinky/Blinky-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/Blinky/Blinky.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <General> 6 | <Flags> 7 | <LRSInOutputDirectory Value="False"/> 8 | </Flags> 9 | <SessionStorage Value="InProjectDir"/> 10 | <MainUnit Value="0"/> 11 | <UseAppBundle Value="False"/> 12 | <ResourceType Value="res"/> 13 | </General> 14 | <VersionInfo> 15 | <StringTable ProductVersion=""/> 16 | </VersionInfo> 17 | <BuildModes Count="1"> 18 | <Item1 Name="Default" Default="True"/> 19 | </BuildModes> 20 | <PublishOptions> 21 | <Version Value="2"/> 22 | </PublishOptions> 23 | <RunParams> 24 | <local> 25 | <FormatVersion Value="1"/> 26 | </local> 27 | </RunParams> 28 | <Units Count="1"> 29 | <Unit0> 30 | <Filename Value="Blinky.lpr"/> 31 | <IsPartOfProject Value="True"/> 32 | </Unit0> 33 | </Units> 34 | </ProjectOptions> 35 | <CompilerOptions> 36 | <Version Value="11"/> 37 | <PathDelim Value="\"/> 38 | <Target> 39 | <Filename Value="Blinky"/> 40 | </Target> 41 | <SearchPaths> 42 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 43 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 44 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 45 | </SearchPaths> 46 | <Parsing> 47 | <SyntaxOptions> 48 | <SyntaxMode Value="Delphi"/> 49 | </SyntaxOptions> 50 | </Parsing> 51 | <CodeGeneration> 52 | <SmartLinkUnit Value="True"/> 53 | <TargetCPU Value="arm"/> 54 | <TargetOS Value="linux"/> 55 | <Optimizations> 56 | <OptimizationLevel Value="3"/> 57 | </Optimizations> 58 | </CodeGeneration> 59 | <Linking> 60 | <Debugging> 61 | <GenerateDebugInfo Value="False"/> 62 | <StripSymbols Value="True"/> 63 | </Debugging> 64 | <LinkSmart Value="True"/> 65 | </Linking> 66 | <Other> 67 | <CustomOptions Value="-dSINGLEBOARD"/> 68 | </Other> 69 | </CompilerOptions> 70 | </CONFIG> 71 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/Blinky/Blinky.lpr: -------------------------------------------------------------------------------- 1 | program Blinky; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | { 15 | This example illustrates how to blink a LED using Sysfs GPIO interface. 16 | 17 | Attention! Please follow these instructions before running the sample: 18 | 19 | 1. When creating TSysfsGPIO class, make sure that Linux path (by default /sys/class/gpio) to GPIO is correct. 20 | 21 | 2. PinLED constant should contain actual Linux GPIO number corresponding to physical pin. 22 | 23 | 3. On some devices, before using pins for GPIO, it is necessary to set one or more multiplexers. Refer to the 24 | manual of your specific device for the information on how to do this. In many cases, you can use the same GPIO 25 | class to do it, e.g. "GPIO.SetMux(24, TPinValue.High)". 26 | 27 | 4. After compiling and uploading this sample, change its attributes to executable. It is also recommended to 28 | execute this application with administrative privileges. Something like this: 29 | chmod +x Blinky 30 | sudo ./Blinky 31 | 32 | 5. Check the accompanying diagram and photo to see an example on how this can be connected on BeagleBone Black. 33 | Note that for BeagleBone Black, check tables on pages 70 and 72 from "BeagleBone Black System Reference Manual" 34 | to determine actual GPIO number. In this case, pin P9_12 in Mode7 corresponds to "gpio1[28]" and since each 35 | "gpio" is offset by 32 starting from zero, the actual pin number is 1 * 32 + 28 = 60. 36 | } 37 | uses 38 | Crt, PXL.Timing, PXL.Boards.Types, PXL.Sysfs.GPIO; 39 | 40 | const 41 | PinLED = 60; 42 | 43 | var 44 | GPIO: TCustomGPIO = nil; 45 | TurnedOn: Boolean = False; 46 | begin 47 | GPIO := TSysfsGPIO.Create; 48 | try 49 | // Switch LED pin for output. 50 | GPIO.PinMode[PinLED] := TPinMode.Output; 51 | 52 | WriteLn('Blinking LED, press any key to exit...'); 53 | 54 | while not KeyPressed do 55 | begin 56 | TurnedOn := not TurnedOn; 57 | 58 | if TurnedOn then 59 | GPIO.PinValue[PinLED] := TPinValue.High 60 | else 61 | GPIO.PinValue[PinLED] := TPinValue.Low; 62 | 63 | MicroSleep(500000); // wait for 500 ms 64 | end; 65 | 66 | // Eat the key pressed so it won't go to terminal after we exit. 67 | ReadKey; 68 | 69 | // Turn the LED off after we are done and switch it to "Input" just to be safe. 70 | GPIO.PinMode[PinLED] := TPinMode.Input; 71 | finally 72 | GPIO.Free; 73 | end; 74 | end. 75 | 76 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplayI2C/DisplayI2C-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/DisplayI2C/DisplayI2C-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplayI2C/DisplayI2C-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/DisplayI2C/DisplayI2C-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplayI2C/DisplayI2C.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplayI2C.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplayI2C"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI-Screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI-Screenshot.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/DisplaySPI/DisplaySPI.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplaySPI.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplaySPI"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/Networking/Networking.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <General> 6 | <Flags> 7 | <LRSInOutputDirectory Value="False"/> 8 | </Flags> 9 | <SessionStorage Value="InProjectDir"/> 10 | <MainUnit Value="0"/> 11 | <UseAppBundle Value="False"/> 12 | <ResourceType Value="res"/> 13 | </General> 14 | <VersionInfo> 15 | <StringTable ProductVersion=""/> 16 | </VersionInfo> 17 | <BuildModes Count="1"> 18 | <Item1 Name="Default" Default="True"/> 19 | </BuildModes> 20 | <PublishOptions> 21 | <Version Value="2"/> 22 | </PublishOptions> 23 | <RunParams> 24 | <local> 25 | <FormatVersion Value="1"/> 26 | </local> 27 | </RunParams> 28 | <Units Count="1"> 29 | <Unit0> 30 | <Filename Value="Networking.lpr"/> 31 | <IsPartOfProject Value="True"/> 32 | </Unit0> 33 | </Units> 34 | </ProjectOptions> 35 | <CompilerOptions> 36 | <Version Value="11"/> 37 | <PathDelim Value="\"/> 38 | <Target> 39 | <Filename Value="Networking"/> 40 | </Target> 41 | <SearchPaths> 42 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 43 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 44 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 45 | </SearchPaths> 46 | <Parsing> 47 | <SyntaxOptions> 48 | <SyntaxMode Value="Delphi"/> 49 | </SyntaxOptions> 50 | </Parsing> 51 | <CodeGeneration> 52 | <SmartLinkUnit Value="True"/> 53 | <TargetCPU Value="arm"/> 54 | <TargetOS Value="linux"/> 55 | <Optimizations> 56 | <OptimizationLevel Value="3"/> 57 | </Optimizations> 58 | </CodeGeneration> 59 | <Linking> 60 | <Debugging> 61 | <GenerateDebugInfo Value="False"/> 62 | <StripSymbols Value="True"/> 63 | </Debugging> 64 | <LinkSmart Value="True"/> 65 | </Linking> 66 | <Other> 67 | <CustomOptions Value="-dSINGLEBOARD"/> 68 | </Other> 69 | </CompilerOptions> 70 | </CONFIG> 71 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/SerialCamera/SerialCamera.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="SerialCamera.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="SerialCamera"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Generic/V4L2Camera/V4L2Camera.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="V4L2Camera.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="V4L2Camera"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSingleBoard"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Media/consolas.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Media/consolas.font -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Media/corbel.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Media/corbel.font -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Media/kristen.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Media/kristen.font -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Media/lenna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Media/lenna.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/Media/tahoma8.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/Media/tahoma8.font -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/BasicOpenGL/BasicOpenGL.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="BasicOpenGL.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="BasicOpenGL"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/Blinky/Blinky-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/Blinky/Blinky-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/Blinky/Blinky-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/Blinky/Blinky-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/Blinky/Blinky.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <General> 6 | <Flags> 7 | <LRSInOutputDirectory Value="False"/> 8 | </Flags> 9 | <SessionStorage Value="InProjectDir"/> 10 | <MainUnit Value="0"/> 11 | <UseAppBundle Value="False"/> 12 | <ResourceType Value="res"/> 13 | </General> 14 | <VersionInfo> 15 | <StringTable ProductVersion=""/> 16 | </VersionInfo> 17 | <BuildModes Count="1"> 18 | <Item1 Name="Default" Default="True"/> 19 | </BuildModes> 20 | <PublishOptions> 21 | <Version Value="2"/> 22 | </PublishOptions> 23 | <RunParams> 24 | <local> 25 | <FormatVersion Value="1"/> 26 | </local> 27 | </RunParams> 28 | <Units Count="1"> 29 | <Unit0> 30 | <Filename Value="Blinky.lpr"/> 31 | <IsPartOfProject Value="True"/> 32 | </Unit0> 33 | </Units> 34 | </ProjectOptions> 35 | <CompilerOptions> 36 | <Version Value="11"/> 37 | <PathDelim Value="\"/> 38 | <Target> 39 | <Filename Value="Blinky"/> 40 | </Target> 41 | <SearchPaths> 42 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 43 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 44 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 45 | </SearchPaths> 46 | <Parsing> 47 | <SyntaxOptions> 48 | <SyntaxMode Value="Delphi"/> 49 | </SyntaxOptions> 50 | </Parsing> 51 | <CodeGeneration> 52 | <SmartLinkUnit Value="True"/> 53 | <TargetCPU Value="arm"/> 54 | <TargetOS Value="linux"/> 55 | <Optimizations> 56 | <OptimizationLevel Value="3"/> 57 | </Optimizations> 58 | </CodeGeneration> 59 | <Linking> 60 | <Debugging> 61 | <GenerateDebugInfo Value="False"/> 62 | <StripSymbols Value="True"/> 63 | </Debugging> 64 | <LinkSmart Value="True"/> 65 | </Linking> 66 | <Other> 67 | <CustomOptions Value="-dSINGLEBOARD"/> 68 | </Other> 69 | </CompilerOptions> 70 | </CONFIG> 71 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/Blinky/Blinky.lpr: -------------------------------------------------------------------------------- 1 | program Blinky; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | { 15 | This example illustrates a simple use of GPIO on Raspberry PI to blink a LED. 16 | 17 | Make sure to connect the LED to RPi pin #16 (BCM 23), please take a look at the accompanying diagram and photo. 18 | } 19 | uses 20 | Crt, PXL.Boards.Types, PXL.Boards.RPi; 21 | 22 | const 23 | PinLED = 16; 24 | 25 | var 26 | SystemCore: TFastSystemCore = nil; 27 | GPIO: TFastGPIO = nil; 28 | TurnedOn: Boolean = False; 29 | begin 30 | SystemCore := TFastSystemCore.Create; 31 | try 32 | GPIO := TFastGPIO.Create(SystemCore); 33 | try 34 | // Switch LED pin for output. 35 | GPIO.PinMode[PinLED] := TPinMode.Output; 36 | 37 | WriteLn('Blinking LED, press any key to exit...'); 38 | 39 | while not KeyPressed do 40 | begin 41 | TurnedOn := not TurnedOn; 42 | 43 | if TurnedOn then 44 | GPIO.PinValue[PinLED] := TPinValue.High 45 | else 46 | GPIO.PinValue[PinLED] := TPinValue.Low; 47 | 48 | SystemCore.Delay(500000); // wait for 500 ms 49 | end; 50 | 51 | // Eat the key pressed so it won't go to terminal after we exit. 52 | ReadKey; 53 | 54 | // Turn the LED off after we are done and switch it to "Input" just to be safe. 55 | GPIO.PinMode[PinLED] := TPinMode.Input; 56 | finally 57 | GPIO.Free; 58 | end; 59 | finally 60 | SystemCore.Free; 61 | end; 62 | end. 63 | 64 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplayI2C/DisplayI2C-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplayI2C/DisplayI2C-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplayI2C/DisplayI2C-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplayI2C/DisplayI2C-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplayI2C/DisplayI2C.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplayI2C.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplayI2C"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI-Screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI-Screenshot.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPI/DisplaySPI.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplaySPI.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplaySPI"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU-HowToConnect-Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU-HowToConnect-Diagram.png -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU-HowToConnect-Photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU-HowToConnect-Photo.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU-Screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU-Screenshot.jpg -------------------------------------------------------------------------------- /Samples/FreePascal/SingleBoard/RaspberryPI/DisplaySPIAndGPU/DisplaySPIAndGPU.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <MainUnitHasCreateFormStatements Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <UseAppBundle Value="False"/> 13 | <ResourceType Value="res"/> 14 | </General> 15 | <i18n> 16 | <EnableI18N LFM="False"/> 17 | </i18n> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="Default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | </PublishOptions> 27 | <RunParams> 28 | <local> 29 | <FormatVersion Value="1"/> 30 | </local> 31 | </RunParams> 32 | <Units Count="1"> 33 | <Unit0> 34 | <Filename Value="DisplaySPIAndGPU.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit0> 37 | </Units> 38 | </ProjectOptions> 39 | <CompilerOptions> 40 | <Version Value="11"/> 41 | <PathDelim Value="\"/> 42 | <Target> 43 | <Filename Value="DisplaySPIAndGPU"/> 44 | </Target> 45 | <SearchPaths> 46 | <IncludeFiles Value="$(ProjOutDir);..\..\..\..\..\Source"/> 47 | <OtherUnitFiles Value="..\..\..\..\..\Source"/> 48 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 49 | </SearchPaths> 50 | <Parsing> 51 | <SyntaxOptions> 52 | <SyntaxMode Value="Delphi"/> 53 | </SyntaxOptions> 54 | </Parsing> 55 | <CodeGeneration> 56 | <SmartLinkUnit Value="True"/> 57 | <TargetCPU Value="arm"/> 58 | <TargetOS Value="linux"/> 59 | <Optimizations> 60 | <OptimizationLevel Value="3"/> 61 | </Optimizations> 62 | </CodeGeneration> 63 | <Linking> 64 | <Debugging> 65 | <GenerateDebugInfo Value="False"/> 66 | <StripSymbols Value="True"/> 67 | </Debugging> 68 | <LinkSmart Value="True"/> 69 | </Linking> 70 | <Other> 71 | <CustomOptions Value="-dSINGLEBOARD"/> 72 | </Other> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions Count="3"> 76 | <Item1> 77 | <Name Value="EAbort"/> 78 | </Item1> 79 | <Item2> 80 | <Name Value="ECodetoolError"/> 81 | </Item2> 82 | <Item3> 83 | <Name Value="EFOpenError"/> 84 | </Item3> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Samples/Media/BookAntiqua24.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/BookAntiqua24.font -------------------------------------------------------------------------------- /Samples/Media/BookAntiqua24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/BookAntiqua24.png -------------------------------------------------------------------------------- /Samples/Media/Corbel.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Corbel.font -------------------------------------------------------------------------------- /Samples/Media/Corbel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Corbel.png -------------------------------------------------------------------------------- /Samples/Media/Kristen.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Kristen.font -------------------------------------------------------------------------------- /Samples/Media/Kristen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Kristen.png -------------------------------------------------------------------------------- /Samples/Media/Lenna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Lenna.png -------------------------------------------------------------------------------- /Samples/Media/Lenna.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Lenna.tga -------------------------------------------------------------------------------- /Samples/Media/Scanline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Scanline.png -------------------------------------------------------------------------------- /Samples/Media/SphinxExampleIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/SphinxExampleIcon.icns -------------------------------------------------------------------------------- /Samples/Media/SphinxExampleIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/SphinxExampleIcon.ico -------------------------------------------------------------------------------- /Samples/Media/Tahoma9b.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Tahoma9b.font -------------------------------------------------------------------------------- /Samples/Media/Tahoma9b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/Tahoma9b.png -------------------------------------------------------------------------------- /Samples/Media/TempusSans.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/TempusSans.font -------------------------------------------------------------------------------- /Samples/Media/TempusSans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/TempusSans.png -------------------------------------------------------------------------------- /Samples/Media/TranceForm.font: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/TranceForm.font -------------------------------------------------------------------------------- /Samples/Media/TranceForm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/AsphyrePXL/e29f402b27b3133e3971ecd4a7f14dddf81c2e34/Samples/Media/TranceForm.png -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasSolid.ps: -------------------------------------------------------------------------------- 1 | 2 | float4 ps_main( 3 | float4 InPos: SV_POSITION, 4 | float2 InTex: TEXCOORD1, 5 | float4 InCol: COLOR0): SV_TARGET 6 | { 7 | return InCol; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasTextured.ps: -------------------------------------------------------------------------------- 1 | 2 | sampler ImageSampler: register(s0); 3 | Texture2D <float4> ImageTexture: register(t0); 4 | 5 | float4 ps_main( 6 | float4 InPos: SV_POSITION, 7 | float2 InTex: TEXCOORD1, 8 | float4 InCol: COLOR0): SV_TARGET 9 | { 10 | return ImageTexture.Sample(ImageSampler, InTex) * InCol; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasTexturedA.ps: -------------------------------------------------------------------------------- 1 | 2 | sampler ImageSampler: register(s0); 3 | Texture2D <float4> ImageTexture: register(t0); 4 | 5 | float4 ps_main( 6 | float4 InPos: SV_POSITION, 7 | float2 InTex: TEXCOORD1, 8 | float4 InCol: COLOR0): SV_TARGET 9 | { 10 | float4 TexColor = ImageTexture.Sample(ImageSampler, InTex); 11 | return float4(InCol.r, InCol.g, InCol.b, InCol.a * TexColor.a); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasTexturedI.ps: -------------------------------------------------------------------------------- 1 | 2 | sampler ImageSampler: register(s0); 3 | sampler PaletteSampler: register(s1); 4 | 5 | Texture2D <float4> ImageTexture: register(t0); 6 | Texture2D <float4> PaletteTexture: register(t1); 7 | 8 | float4 ps_main( 9 | float4 InPos: SV_POSITION, 10 | float2 InTex: TEXCOORD1, 11 | float4 InCol: COLOR0): SV_TARGET 12 | { 13 | float PaletteIndex = ImageTexture.Sample(ImageSampler, InTex).r; 14 | return PaletteTexture.Sample(PaletteSampler, (PaletteIndex * 255.0f / 256.0f) + 0.5f / 256.0f); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasTexturedL.ps: -------------------------------------------------------------------------------- 1 | 2 | sampler ImageSampler: register(s0); 3 | Texture2D <float4> ImageTexture: register(t0); 4 | 5 | float4 ps_main( 6 | float4 InPos: SV_POSITION, 7 | float2 InTex: TEXCOORD1, 8 | float4 InCol: COLOR0): SV_TARGET 9 | { 10 | float4 TexColor = ImageTexture.Sample(ImageSampler, InTex); 11 | return float4(InCol.r * TexColor.r, InCol.g * TexColor.r, InCol.b * TexColor.r, InCol.a); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasTexturedLA.ps: -------------------------------------------------------------------------------- 1 | 2 | sampler ImageSampler: register(s0); 3 | Texture2D <float4> ImageTexture: register(t0); 4 | 5 | float4 ps_main( 6 | float4 InPos: SV_POSITION, 7 | float2 InTex: TEXCOORD1, 8 | float4 InCol: COLOR0): SV_TARGET 9 | { 10 | float4 TempColor = ImageTexture.Sample(ImageSampler, InTex); 11 | return TempColor.rrrg * InCol; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /Shaders/DirectX/CanvasVertex.vs: -------------------------------------------------------------------------------- 1 | void vs_main( 2 | float2 InPos: POSITION0, 3 | float2 InTex: TEXCOORD0, 4 | float4 InCol: COLOR0, 5 | out float4 OutPos: SV_POSITION, 6 | out float2 OutTex: TEXCOORD1, 7 | out float4 OutCol: COLOR0) 8 | { 9 | OutPos = float4(InPos, 0.0, 1.0); 10 | OutTex = InTex; 11 | OutCol = InCol; 12 | } 13 | -------------------------------------------------------------------------------- /Shaders/readme.txt: -------------------------------------------------------------------------------- 1 | Platform eXtended Library 2 | 3 | ------------------------------------------------------------------------------- 4 | 5 | In this folder you may find DirectX shaders that are used for Direct3D 11 6 | providers in the framework. These are also included in the source code in 7 | compiled form. These are available for your own reference and require DirectX 8 | SDK for compilation (specifically "fxc" tool). 9 | 10 | OpenGL (ES) shaders are directly embedded in the framework source and can be 11 | found in "Source" folder. 12 | -------------------------------------------------------------------------------- /Source/Android.Config.inc: -------------------------------------------------------------------------------- 1 | { Enables debug messages for most of AppGlue callbacks and commands. } 2 | {$DEFINE APPGLUE_DEBUG} 3 | 4 | {$IFNDEF PXL_CONFIG} 5 | {$IFDEF FPC} 6 | {$MODE DELPHI} 7 | {$ENDIF} 8 | {$ENDIF} 9 | -------------------------------------------------------------------------------- /Source/Android.DlFcn.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2008 The Android Open Source Project 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the 6 | following conditions are met: 7 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following 8 | disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the 10 | following disclaimer in the documentation and/or other materials provided with the distribution. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 13 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 14 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 16 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 17 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 18 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 19 | 20 | Android NDK C/C++ file: 21 | dlfcn.h 22 | 23 | Original source code was taken from: 24 | %NDK_DIR%/platforms/android-9/arch-arm/usr/include/ 25 | 26 | Pascal translation by Yuriy Kotsarenko, August 2015. 27 | } 28 | unit Android.DlFcn; 29 | 30 | interface 31 | 32 | {$INCLUDE Android.Config.inc} 33 | {$INCLUDE Android.LibDefs.inc} 34 | 35 | type 36 | PDl_info = ^Dl_info; 37 | Dl_info = record 38 | dli_fname: PAnsiChar; // Pathname of shared object that contains address 39 | dli_fbase: Pointer; // Address at which shared object is loaded 40 | dli_sname: PAnsiChar; // Name of nearest symbol with address lower than addr 41 | dli_saddr: Pointer; // Exact address of symbol named in dli_sname 42 | end; 43 | 44 | const 45 | RTLD_NOW = 0; 46 | RTLD_LAZY = 1; 47 | 48 | RTLD_LOCAL = 0; 49 | RTLD_GLOBAL = 2; 50 | 51 | RTLD_DEFAULT = Pointer($FFFFFFFF); 52 | RTLD_NEXT = Pointer($FFFFFFFE); 53 | 54 | function dlopen(filename: PAnsiChar; flag: LongInt): Pointer; cdecl; 55 | external libdl name 'dlopen'; 56 | 57 | function dlclose(handle: Pointer): LongInt; cdecl; 58 | external libdl name 'dlclose'; 59 | 60 | function dlerror: PAnsiChar; cdecl; 61 | external libdl name 'dlerror'; 62 | 63 | function dlsym(handle: Pointer; symbol: PAnsiChar): Pointer; cdecl; 64 | external libdl name 'dlsym'; 65 | 66 | function dladdr(addr: Pointer; info: PDL_info): LongInt; cdecl; 67 | external libdl name 'dladdr'; 68 | 69 | implementation 70 | 71 | end. 72 | -------------------------------------------------------------------------------- /Source/Android.LibDefs.inc: -------------------------------------------------------------------------------- 1 | const 2 | libEGL = 'libEGL.so'; 3 | libGLESv2 = 'libGLESv2.so'; 4 | libc = 'libc.so'; 5 | liblog = 'liblog.so'; 6 | libandroid = 'libandroid.so'; 7 | libdl = 'libdl.so'; 8 | libm = 'libm.so'; 9 | 10 | -------------------------------------------------------------------------------- /Source/Android.Log.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2010 The Android Open Source Project 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance 5 | with the License. You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed 9 | on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for 10 | the specific language governing permissions and limitations under the License. 11 | 12 | Android NDK C/C++ file: 13 | android/log.h 14 | 15 | Original source code was taken from: 16 | %NDK_DIR%/platforms/android-9/arch-arm/usr/include/ 17 | 18 | Pascal translation by Yuriy Kotsarenko, August 2015. 19 | } 20 | unit Android.Log; 21 | 22 | { 23 | IMPORTANT NOTICE: 24 | 25 | This file is part of Android's set of stable system headers exposed by the Android NDK (Native Development Kit) 26 | since platform release 1.5 27 | 28 | Third-party source AND binary code relies on the definitions here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES. 29 | 30 | - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES) 31 | - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS 32 | - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY 33 | - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES 34 | } 35 | 36 | { 37 | Support routines to send messages to the Android in-kernel log buffer, which can later be accessed through the 38 | 'logcat' utility. 39 | 40 | Each log message must have 41 | - a priority 42 | - a log tag 43 | - some text 44 | 45 | The tag normally corresponds to the component that emits the log message, and should be reasonably small. 46 | 47 | Log message text may be truncated to less than an implementation-specific limit (e.g. 1023 characters max). 48 | 49 | Note that a newline character ("\n") will be appended automatically to your log message, if not already there. 50 | It is not possible to send several messages and have them appear on a single line in logcat. 51 | 52 | PLEASE USE LOGS WITH MODERATION: 53 | 54 | - Sending log messages eats CPU and slow down your application and the system. 55 | 56 | - The circular log buffer is pretty small (<64KB), sending many messages might push off other important log messages 57 | from the rest of the system. 58 | 59 | - In release builds, only send log messages to account for exceptional conditions. 60 | 61 | NOTE: These functions MUST be implemented by /system/lib/liblog.so 62 | } 63 | 64 | interface 65 | 66 | {$INCLUDE Android.Config.inc} 67 | {$INCLUDE Android.LibDefs.inc} 68 | 69 | { 70 | Android log priority values, in ascending priority order. 71 | } 72 | const 73 | ANDROID_LOG_UNKNOWN = 0; 74 | ANDROID_LOG_DEFAULT = 1; // only for SetMinPriority() 75 | ANDROID_LOG_VERBOSE = 2; 76 | ANDROID_LOG_DEBUG = 3; 77 | ANDROID_LOG_INFO = 4; 78 | ANDROID_LOG_WARN = 5; 79 | ANDROID_LOG_ERROR = 6; 80 | ANDROID_LOG_FATAL = 7; 81 | ANDROID_LOG_SILENT = 8; // only for SetMinPriority(); must be last 82 | 83 | { 84 | Send a simple string to the log. 85 | } 86 | function __android_log_write(prio: int32; tag, text: PAnsiChar): int32; cdecl; 87 | external liblog name '__android_log_write'; 88 | 89 | implementation 90 | 91 | end. 92 | -------------------------------------------------------------------------------- /Source/Android.Rect.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2010 The Android Open Source Project 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance 5 | with the License. You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed 9 | on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for 10 | the specific language governing permissions and limitations under the License. 11 | 12 | Android NDK C/C++ file: 13 | android/rect.h 14 | 15 | Original source code was taken from: 16 | %NDK_DIR%/platforms/android-9/arch-arm/usr/include/ 17 | 18 | Pascal translation by Yuriy Kotsarenko, August 2015. 19 | } 20 | unit Android.Rect; 21 | 22 | interface 23 | 24 | {$INCLUDE Android.Config.inc} 25 | 26 | type 27 | PARect = ^ARect; 28 | ARect = record 29 | left: LongInt; 30 | top: LongInt; 31 | right: LongInt; 32 | bottom: LongInt; 33 | end; 34 | 35 | implementation 36 | 37 | end. 38 | -------------------------------------------------------------------------------- /Source/PXL.Canvas.GL.SolidPixelShader.inc: -------------------------------------------------------------------------------- 1 | const 2 | SolidPixelShaderCode: TShaderString = 3 | 'uniform sampler2D SourceTex;' + 4 | 'varying vec4 OutpColor;' + 5 | 'varying vec2 OutpTexCoord;' + 6 | 'void main()' + 7 | '{' + 8 | ' gl_FragColor = OutpColor;' + 9 | '}'; 10 | -------------------------------------------------------------------------------- /Source/PXL.Canvas.GL.TexturedPixelShader.inc: -------------------------------------------------------------------------------- 1 | const 2 | TexturedPixelShaderCode: TShaderString = 3 | 'uniform sampler2D SourceTex;' + 4 | 'varying vec4 OutpColor;' + 5 | 'varying vec2 OutpTexCoord;' + 6 | 'void main()' + 7 | '{' + 8 | ' gl_FragColor = texture2D(SourceTex, OutpTexCoord) * OutpColor;' + 9 | '}'; 10 | -------------------------------------------------------------------------------- /Source/PXL.Canvas.GL.VertexShader.inc: -------------------------------------------------------------------------------- 1 | const 2 | VertexShaderCode: TShaderString = 3 | 'attribute vec2 InPos;' + 4 | 'attribute vec2 InpTexCoord;' + 5 | 'attribute vec4 InpColor;' + 6 | 'varying vec4 OutpColor;' + 7 | 'varying vec2 OutpTexCoord;' + 8 | 'void main()' + 9 | '{' + 10 | ' gl_Position = vec4(InPos, 0.0, 1.0);' + 11 | ' OutpColor = InpColor;' + 12 | ' OutpTexCoord = InpTexCoord;' + 13 | '}'; -------------------------------------------------------------------------------- /Source/PXL.Canvas.GLES.SolidPixelShader.inc: -------------------------------------------------------------------------------- 1 | const 2 | SolidPixelShaderCode: TShaderString = 3 | 'precision mediump float;' + 4 | 'uniform sampler2D SourceTex;' + 5 | 'varying vec4 OutpColor;' + 6 | 'varying vec2 OutpTexCoord;' + 7 | 'void main()' + 8 | '{' + 9 | ' gl_FragColor = OutpColor;' + 10 | '}'; 11 | -------------------------------------------------------------------------------- /Source/PXL.Canvas.GLES.TexturedPixelShader.inc: -------------------------------------------------------------------------------- 1 | const 2 | TexturedPixelShaderCode: TShaderString = 3 | 'precision mediump float;' + 4 | 'uniform sampler2D SourceTex;' + 5 | 'varying vec4 OutpColor;' + 6 | 'varying vec2 OutpTexCoord;' + 7 | 'void main()' + 8 | '{' + 9 | ' gl_FragColor = texture2D(SourceTex, OutpTexCoord) * OutpColor;' + 10 | '}'; 11 | -------------------------------------------------------------------------------- /Source/PXL.Canvas.GLES.VertexShader.inc: -------------------------------------------------------------------------------- 1 | const 2 | VertexShaderCode: TShaderString = 3 | 'attribute vec2 InPos;' + 4 | 'attribute vec2 InpTexCoord;' + 5 | 'attribute vec4 InpColor;' + 6 | 'varying vec4 OutpColor;' + 7 | 'varying vec2 OutpTexCoord;' + 8 | 'void main()' + 9 | '{' + 10 | ' gl_Position = vec4(InPos, 0.0, 1.0);' + 11 | ' OutpColor = InpColor;' + 12 | ' OutpTexCoord = InpTexCoord;' + 13 | '}'; -------------------------------------------------------------------------------- /Source/PXL.Consts.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Consts; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.TypeDef; 20 | 21 | resourcestring 22 | SAssetManagerNotSpecified = 'Asset Manager has not been specified.'; 23 | SCannotRestoreTexture = 'Cannot restore texture to working status on device recovery.'; 24 | SCannotRestoreTextures = 'Cannot restore textures to working status on device recovery.'; 25 | SCannotRestoreCanvas = 'Cannot restore canvas to working status on device recovery.'; 26 | SCannotRestoreImages = 'Cannot restore images to working status on device recovery.'; 27 | SCanvasGeometryTooBig = 'Geometry passed to canvas is too big to be rendered.'; 28 | SCouldNotActivateShaderEffect = 'Shader effect could not be activated.'; 29 | 30 | implementation 31 | 32 | end. 33 | -------------------------------------------------------------------------------- /Source/PXL.Devices.FM.GL.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Devices.FM.GL; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Types, PXL.Devices, PXL.Types.GL; 20 | 21 | type 22 | TFireGLDevice = class(TCustomDevice) 23 | private 24 | FContext: TGLDeviceContext; 25 | protected 26 | function GetDeviceContext: TCustomDeviceContext; override; 27 | public 28 | constructor Create(const AProvider: TCustomDeviceProvider); 29 | destructor Destroy; override; 30 | 31 | function Clear(const ClearTypes: TClearTypes; const ColorValue: TIntColor; const DepthValue: Single = 1.0; 32 | const StencilValue: Cardinal = 0): Boolean; override; 33 | end; 34 | 35 | implementation 36 | 37 | uses 38 | Macapi.OpenGL; 39 | 40 | constructor TFireGLDevice.Create(const AProvider: TCustomDeviceProvider); 41 | begin 42 | inherited; 43 | 44 | FContext := TGLDeviceContext.Create(Self); 45 | 46 | FTechnology := TDeviceTechnology.OpenGL; 47 | 48 | FTechVersion := Cardinal(FContext.Extensions.MajorVersion) shl 8; 49 | 50 | FTechFeatureVersion := 51 | (Cardinal(FContext.Extensions.MajorVersion) shl 8) or 52 | (Cardinal(FContext.Extensions.MinorVersion and $0F) shl 4); 53 | end; 54 | 55 | destructor TFireGLDevice.Destroy; 56 | begin 57 | inherited; 58 | 59 | FContext.Free; 60 | end; 61 | 62 | function TFireGLDevice.GetDeviceContext: TCustomDeviceContext; 63 | begin 64 | Result := FContext; 65 | end; 66 | 67 | function TFireGLDevice.Clear(const ClearTypes: TClearTypes; const ColorValue: TIntColor; const DepthValue: Single; 68 | const StencilValue: Cardinal): Boolean; 69 | var 70 | Flags: Cardinal; 71 | begin 72 | if ClearTypes = [] then 73 | Exit(False); 74 | 75 | Flags := 0; 76 | 77 | if TClearType.Color in ClearTypes then 78 | begin 79 | glClearColor(TIntColorRec(ColorValue).Red / 255.0, TIntColorRec(ColorValue).Green / 255.0, 80 | TIntColorRec(ColorValue).Blue / 255.0, TIntColorRec(ColorValue).Alpha / 255.0); 81 | Flags := Flags or GL_COLOR_BUFFER_BIT; 82 | end; 83 | 84 | if TClearType.Depth in ClearTypes then 85 | begin 86 | glClearDepth(DepthValue); 87 | Flags := Flags or GL_DEPTH_BUFFER_BIT; 88 | end; 89 | 90 | if TClearType.Stencil in ClearTypes then 91 | begin 92 | glClearStencil(StencilValue); 93 | Flags := Flags or GL_STENCIL_BUFFER_BIT; 94 | end; 95 | 96 | glClear(Flags); 97 | 98 | Result := glGetError = GL_NO_ERROR; 99 | end; 100 | 101 | end. 102 | -------------------------------------------------------------------------------- /Source/PXL.ImageFormats.Auto.pas: -------------------------------------------------------------------------------- 1 | unit PXL.ImageFormats.Auto; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | {< Automatic cross-platform image format handler instance creation. } 15 | interface 16 | 17 | {$INCLUDE PXL.Config.inc} 18 | 19 | uses 20 | PXL.ImageFormats; 21 | 22 | { Enable the following option to use Vampyre Imaging Library on non-Windows platforms instead of LCL. This provides 23 | superior performance but might not work on all platforms. } 24 | {.$DEFINE USE_VAMPYRE_IMAGING} 25 | 26 | {$IFDEF DELPHI} 27 | {$DEFINE USE_VAMPYRE_IMAGING} 28 | {$ENDIF} 29 | 30 | { Creates image format handler by default choosen depending on platform, OS and available support. } 31 | function CreateDefaultImageFormatHandler(const ImageFormatManager: TImageFormatManager): TCustomImageFormatHandler; 32 | 33 | implementation 34 | 35 | uses 36 | {$IFDEF MSWINDOWS} 37 | PXL.ImageFormats.WIC 38 | {$ELSE} 39 | {$IFDEF USE_VAMPYRE_IMAGING} 40 | PXL.ImageFormats.Vampyre 41 | {$ELSE} 42 | PXL.ImageFormats.FCL 43 | {$ENDIF} 44 | {$ENDIF}; 45 | 46 | function CreateDefaultImageFormatHandler(const ImageFormatManager: TImageFormatManager): TCustomImageFormatHandler; 47 | begin 48 | {$IFDEF MSWINDOWS} 49 | Result := TWICImageFormatHandler.Create(ImageFormatManager); 50 | {$ELSE} 51 | {$IFDEF USE_VAMPYRE_IMAGING} 52 | Result := TVampyreImageFormatHandler.Create(ImageFormatManager); 53 | {$ELSE} 54 | Result := TFCLImageFormatHandler.Create(ImageFormatManager); 55 | {$ENDIF} 56 | {$ENDIF} 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Linux.config.inc: -------------------------------------------------------------------------------- 1 | {$IFDEF FPC} 2 | {$PACKRECORDS C} 3 | {$MODE DELPHI} 4 | {$ELSE} 5 | {$ALIGN ON} 6 | {$ENDIF} 7 | 8 | -------------------------------------------------------------------------------- /Source/PXL.MicroConfig.inc: -------------------------------------------------------------------------------- 1 | (* 2 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 3 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 6 | * compliance with the License. You may obtain a copy of the License at 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 10 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and limitations under the License. 12 | *) 13 | 14 | { Indicates that this config file has been processed (to avoid redeclaring or redefining of parameters in other 15 | configuration files). } 16 | {$DEFINE PXL_MICRO_CONFIG} 17 | 18 | {.$HINTS OFF} 19 | {.$WARNINGS OFF} 20 | 21 | {$SCOPEDENUMS ON} 22 | {$B-} 23 | {$I-} 24 | 25 | {$MODE ObjFPC} 26 | {$MODESWITCH ADVANCEDRECORDS} 27 | {$MODESWITCH TYPEHELPERS} 28 | {$MODESWITCH AUTODEREF} 29 | 30 | {$IFDEF CPU32} 31 | {$IFDEF I386} 32 | {$DEFINE CPUX86} 33 | {$ENDIF} 34 | {$ENDIF} 35 | 36 | {$IFDEF CPU64} 37 | {$DEFINE CPUX64} 38 | {$DEFINE PUREPASCAL} 39 | {$ENDIF} 40 | 41 | {$IF DEFINED(CPUARM) AND DEFINED(FPC_ABI_EABI)} 42 | {$DEFINE FPC_MMAP2} 43 | {$ELSE} 44 | {$DEFINE FPC_OLDMMAP} 45 | {$ENDIF} 46 | 47 | {$IFDEF EMBEDDED} 48 | {$DEFINE SINGLEBOARD} 49 | {.$DEFINE MICROBOARD} 50 | {$ALIGN 2} 51 | {$ENDIF} 52 | 53 | 54 | -------------------------------------------------------------------------------- /Source/PXL.Providers.DX11.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.DX11; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TDX11Provider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Devices.DX11, PXL.Textures.DX11, PXL.Canvas.DX11; 36 | 37 | function TDX11Provider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TDX11Device.Create(Self); 40 | end; 41 | 42 | function TDX11Provider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TDX11Canvas.Create(Device); 45 | end; 46 | 47 | function TDX11Provider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TDX11LockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TDX11Provider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TDX11DrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.DX7.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.DX7; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TDX7Provider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Devices.DX7, PXL.Textures.DX7, PXL.Canvas.DX7; 36 | 37 | function TDX7Provider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TDX7Device.Create(Self); 40 | end; 41 | 42 | function TDX7Provider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TDX7Canvas.Create(Device); 45 | end; 46 | 47 | function TDX7Provider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TDX7LockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TDX7Provider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TDX7DrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.DX9.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.DX9; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TDX9Provider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Devices.DX9, PXL.Textures.DX9, PXL.Canvas.DX9; 36 | 37 | function TDX9Provider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TDX9Device.Create(Self); 40 | end; 41 | 42 | function TDX9Provider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TDX9Canvas.Create(Device); 45 | end; 46 | 47 | function TDX9Provider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TDX9LockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TDX9Provider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TDX9DrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.FM.DX11.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.FM.DX11; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TFireDX11Provider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Devices.FM.DX11, PXL.Textures.DX11, PXL.Canvas.DX11; 36 | 37 | function TFireDX11Provider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TFireDX11Device.Create(Self); 40 | end; 41 | 42 | function TFireDX11Provider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TDX11Canvas.Create(Device); 45 | end; 46 | 47 | function TFireDX11Provider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TDX11LockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TFireDX11Provider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TDX11DrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.FM.DX9.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.FM.DX9; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TFireDX9Provider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Devices.FM.DX9, PXL.Textures.DX9, PXL.Canvas.DX9; 36 | 37 | function TFireDX9Provider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TFireDX9Device.Create(Self); 40 | end; 41 | 42 | function TFireDX9Provider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TDX9Canvas.Create(Device); 45 | end; 46 | 47 | function TFireDX9Provider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TDX9LockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TFireDX9Provider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TDX9DrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.FM.GL.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.FM.GL; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TFireGLProvider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Textures.GL, PXL.Canvas.GL, PXL.Devices.FM.GL; 36 | 37 | function TFireGLProvider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TFireGLDevice.Create(Self); 40 | end; 41 | 42 | function TFireGLProvider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TGLCanvas.Create(Device); 45 | end; 46 | 47 | function TFireGLProvider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TGLLockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TFireGLProvider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TGLDrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.FM.GLES.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.FM.GLES; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TFireGLESProvider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Textures.GLES, PXL.Canvas.GLES, PXL.Devices.FM.GLES; 36 | 37 | function TFireGLESProvider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TFireGLESDevice.Create(Self); 40 | end; 41 | 42 | function TFireGLESProvider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TGLESCanvas.Create(Device); 45 | end; 46 | 47 | function TFireGLESProvider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TGLESLockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TFireGLESProvider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := TGLESDrawableTexture.Create(Device, AutoSubscribe); 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.GL.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.GL; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | { Remove the dot to enable Legacy Canvas that uses OpenGL 1.x for rendering. 19 | By default, newer canvas uses OpenGL 2.x for rendering. } 20 | {.$DEFINE UseLagacy1xCanvas} 21 | 22 | uses 23 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 24 | 25 | type 26 | TGLProvider = class(TGraphicsDeviceProvider) 27 | public 28 | function CreateDevice: TCustomDevice; override; 29 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 30 | function CreateLockableTexture(const Device: TCustomDevice; 31 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 32 | function CreateDrawableTexture(const Device: TCustomDevice; 33 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 34 | end; 35 | 36 | implementation 37 | 38 | uses 39 | {$IFDEF MSWINDOWS} 40 | PXL.Devices.GL.Win, 41 | {$ELSE} 42 | {$IFDEF DARWIN} 43 | {$IFDEF LCLCARBON} 44 | PXL.Devices.GL.Carbon, 45 | {$ELSE} 46 | PXL.Devices.GL.Cocoa, 47 | {$ENDIF} 48 | {$ELSE} 49 | PXL.Devices.GL.X, 50 | {$ENDIF} 51 | {$ENDIF} 52 | 53 | {$IFDEF UseLagacy1xCanvas} 54 | PXL.Canvas.GL.GL1, 55 | {$ELSE} 56 | PXL.Canvas.GL, 57 | {$ENDIF} 58 | 59 | PXL.Textures.GL; 60 | 61 | function TGLProvider.CreateDevice: TCustomDevice; 62 | begin 63 | Result := TGLDevice.Create(Self); 64 | end; 65 | 66 | function TGLProvider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 67 | begin 68 | Result := TGLCanvas.Create(Device); 69 | end; 70 | 71 | function TGLProvider.CreateLockableTexture(const Device: TCustomDevice; 72 | const AutoSubscribe: Boolean): TCustomLockableTexture; 73 | begin 74 | Result := TGLLockableTexture.Create(Device, AutoSubscribe); 75 | end; 76 | 77 | function TGLProvider.CreateDrawableTexture(const Device: TCustomDevice; 78 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 79 | begin 80 | Result := TGLDrawableTexture.Create(Device, AutoSubscribe); 81 | end; 82 | 83 | end. 84 | -------------------------------------------------------------------------------- /Source/PXL.Providers.GLES.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.GLES; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TGLESProvider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | {$IFDEF SINGLEBOARD} 36 | PXL.Devices.GLES.RPi, 37 | {$ELSE} 38 | {$IFNDEF ANDROID} 39 | PXL.Devices.GLES.X, 40 | {$ENDIF} 41 | {$ENDIF} 42 | 43 | PXL.Textures.GLES, PXL.Canvas.GLES; 44 | 45 | function TGLESProvider.CreateDevice: TCustomDevice; 46 | begin 47 | {$IFNDEF ANDROID} 48 | Result := TGLESDevice.Create(Self); 49 | {$ELSE} 50 | Result := nil; 51 | {$ENDIF} 52 | end; 53 | 54 | function TGLESProvider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 55 | begin 56 | Result := TGLESCanvas.Create(Device); 57 | end; 58 | 59 | function TGLESProvider.CreateLockableTexture(const Device: TCustomDevice; 60 | const AutoSubscribe: Boolean): TCustomLockableTexture; 61 | begin 62 | Result := TGLESLockableTexture.Create(Device, AutoSubscribe); 63 | end; 64 | 65 | function TGLESProvider.CreateDrawableTexture(const Device: TCustomDevice; 66 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 67 | begin 68 | Result := TGLESDrawableTexture.Create(Device, AutoSubscribe); 69 | end; 70 | 71 | end. 72 | -------------------------------------------------------------------------------- /Source/PXL.Providers.SRT.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers.SRT; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Devices, PXL.Textures, PXL.Canvas, PXL.Providers; 20 | 21 | type 22 | TSRTProvider = class(TGraphicsDeviceProvider) 23 | public 24 | function CreateDevice: TCustomDevice; override; 25 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; override; 26 | function CreateLockableTexture(const Device: TCustomDevice; 27 | const AutoSubscribe: Boolean): TCustomLockableTexture; override; 28 | function CreateDrawableTexture(const Device: TCustomDevice; 29 | const AutoSubscribe: Boolean): TCustomDrawableTexture; override; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | PXL.Devices.SRT, PXL.Textures.SRT, PXL.Canvas.SRT; 36 | 37 | function TSRTProvider.CreateDevice: TCustomDevice; 38 | begin 39 | Result := TSRTDevice.Create(Self); 40 | end; 41 | 42 | function TSRTProvider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := TSRTCanvas.Create(Device); 45 | end; 46 | 47 | function TSRTProvider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := TSRTLockableTexture.Create(Device, AutoSubscribe); 51 | end; 52 | 53 | function TSRTProvider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := nil; 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Providers.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Providers; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | {< Device-bound factory implementation that creates secondary components such as canvas and textures. } 15 | interface 16 | 17 | {$INCLUDE PXL.Config.inc} 18 | 19 | uses 20 | PXL.Devices, PXL.Textures, PXL.Canvas; 21 | 22 | type 23 | { Abstract device provider that is able to create new instances of important rendering classes such as canvas and 24 | textures. } 25 | TGraphicsDeviceProvider = class abstract(TCustomDeviceProvider) 26 | public 27 | { This function creates new canvas instance that is tied to the given device. } 28 | function CreateCanvas(const Device: TCustomDevice): TCustomCanvas; virtual; 29 | 30 | { This function creates new lockable texture instance that is tied to the given device. } 31 | function CreateLockableTexture(const Device: TCustomDevice; 32 | const AutoSubscribe: Boolean = True): TCustomLockableTexture; virtual; 33 | 34 | { This function creates new drawable texture instance that is tied to the given device. 35 | If drawable textures are not supported in this provider, @nil is returned. } 36 | function CreateDrawableTexture(const Device: TCustomDevice; 37 | const AutoSubscribe: Boolean = True): TCustomDrawableTexture; virtual; 38 | end; 39 | 40 | implementation 41 | 42 | function TGraphicsDeviceProvider.CreateCanvas(const Device: TCustomDevice): TCustomCanvas; 43 | begin 44 | Result := nil; 45 | end; 46 | 47 | function TGraphicsDeviceProvider.CreateLockableTexture(const Device: TCustomDevice; 48 | const AutoSubscribe: Boolean): TCustomLockableTexture; 49 | begin 50 | Result := nil; 51 | end; 52 | 53 | function TGraphicsDeviceProvider.CreateDrawableTexture(const Device: TCustomDevice; 54 | const AutoSubscribe: Boolean): TCustomDrawableTexture; 55 | begin 56 | Result := nil; 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Source/PXL.Sensors.Types.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Sensors.Types; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | SysUtils, PXL.Boards.Types; 20 | 21 | type 22 | TCustomSensor = class 23 | end; 24 | 25 | ESensorGeneric = class(Exception); 26 | ESensorDataRead = class(ESensorGeneric); 27 | ESensorDataWrite = class(ESensorGeneric); 28 | ESensorNoDataPort = class(ESensorGeneric); 29 | ESensorInvalidAddress = class(ESensorGeneric); 30 | ESensorInvalidChipID = class(ESensorGeneric); 31 | ESensorNoSystemCore = class(ESensorGeneric); 32 | ESensorNoGPIO = class(ESensorGeneric); 33 | 34 | resourcestring 35 | SSensorDataRead = 'Unable to read <%d> bytes from sensor.'; 36 | SSensorDataWrite = 'Unable to write <%d> bytes to sensor.'; 37 | SSensorNoDataPort = 'A valid data port is required for the sensor.'; 38 | SSensorInvalidAddress = 'The specified sensor address <%x> is invalid.'; 39 | SSensorInvalidChipID = 'Invalid sensor Chip ID, expected <%x>, found <%x>.'; 40 | SSensorNoSystemCore = 'A valid system core is required for the sensor.'; 41 | SSensorNoGPIO = 'A valid GPIO interface is required for the sensor.'; 42 | 43 | implementation 44 | 45 | end. 46 | -------------------------------------------------------------------------------- /Source/PXL.Sysfs.ADC.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Sysfs.ADC; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.TypeDef, PXL.Sysfs.Types, PXL.Boards.Types; 20 | 21 | type 22 | TSysfsADC = class(TCustomADC) 23 | private const 24 | MaximumSupportedChannels = 64; 25 | private 26 | FSystemPath: StdString; 27 | protected 28 | function GetRawValue(const Channel: TPinChannel): Cardinal; override; 29 | public 30 | constructor Create(const ASystemPath: StdString); 31 | end; 32 | 33 | EADCGeneric = class(ESysfsGeneric); 34 | EADCInvalidChannel = class(EADCGeneric); 35 | 36 | resourcestring 37 | SADCSpecifiedChannelInvalid = 'The specified ADC channel <%d> is invalid.'; 38 | 39 | implementation 40 | 41 | uses 42 | SysUtils; 43 | 44 | constructor TSysfsADC.Create(const ASystemPath: StdString); 45 | begin 46 | inherited Create; 47 | 48 | FSystemPath := ASystemPath; 49 | end; 50 | 51 | function TSysfsADC.GetRawValue(const Channel: TPinChannel): Cardinal; 52 | begin 53 | if Channel > MaximumSupportedChannels then 54 | raise EADCInvalidChannel.Create(Format(SADCSpecifiedChannelInvalid, [Channel])); 55 | 56 | Result := StrToInt(Trim(ReadTextFromFile(FSystemPath + '/in_voltage' + IntToStr(Channel) + '_raw'))); 57 | end; 58 | 59 | end. 60 | 61 | -------------------------------------------------------------------------------- /Source/PXL.Sysfs.Core.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Sysfs.Core; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | uses 17 | PXL.Boards.Types; 18 | 19 | type 20 | TSysfsSystemCore = class(TCustomSystemCore) 21 | protected 22 | function GetTickCount: TTickCounter; override; 23 | procedure MicroDelay(const Microseconds: Cardinal); override; 24 | end; 25 | 26 | implementation 27 | 28 | uses 29 | PXL.Timing; 30 | 31 | function TSysfsSystemCore.GetTickCount: TTickCounter; 32 | begin 33 | Result := Round(GetSystemTimeValue * 1000.0); 34 | end; 35 | 36 | procedure TSysfsSystemCore.MicroDelay(const Microseconds: Cardinal); 37 | begin 38 | MicroSleep(Microseconds); 39 | end; 40 | 41 | end. 42 | -------------------------------------------------------------------------------- /Source/PXL.Textures.SRT.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Textures.SRT; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Types, PXL.Surfaces, PXL.Textures; 20 | 21 | type 22 | TSRTLockableTexture = class(TCustomLockableTexture) 23 | private 24 | FSurface: TPixelSurface; 25 | protected 26 | function DoInitialize: Boolean; override; 27 | procedure DoFinalize; override; 28 | public 29 | function DoLock(const Rect: TIntRect; out LockedPixels: TLockedPixels): Boolean; override; 30 | function DoUnlock: Boolean; override; 31 | 32 | property Surface: TPixelSurface read FSurface; 33 | end; 34 | 35 | implementation 36 | 37 | uses 38 | SysUtils; 39 | 40 | function TSRTLockableTexture.DoInitialize: Boolean; 41 | begin 42 | if (Width < 1) or (Height < 1) then 43 | Exit(False); 44 | 45 | if FSurface = nil then 46 | FSurface := TPixelSurface.Create; 47 | 48 | FSurface.SetSize(Width, Height, FPixelFormat); 49 | 50 | FPixelFormat := FSurface.PixelFormat; 51 | FBytesPerPixel := FSurface.BytesPerPixel; 52 | 53 | FSurface.Clear(0); 54 | Result := True; 55 | end; 56 | 57 | procedure TSRTLockableTexture.DoFinalize; 58 | begin 59 | FreeAndNil(FSurface); 60 | end; 61 | 62 | function TSRTLockableTexture.DoLock(const Rect: TIntRect; out LockedPixels: TLockedPixels): Boolean; 63 | begin 64 | Result := LockSurface(FSurface, Rect, LockedPixels); 65 | end; 66 | 67 | function TSRTLockableTexture.DoUnlock: Boolean; 68 | begin 69 | Result := True; 70 | end; 71 | 72 | end. 73 | -------------------------------------------------------------------------------- /Source/PXL.Types.SRT.pas: -------------------------------------------------------------------------------- 1 | unit PXL.Types.SRT; 2 | (* 3 | * This file is part of Asphyre Framework, also known as Platform eXtended Library (PXL). 4 | * Copyright (c) 2015 - 2017 Yuriy Kotsarenko. All rights reserved. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in 7 | * compliance with the License. You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and limitations under the License. 13 | *) 14 | interface 15 | 16 | {$INCLUDE PXL.Config.inc} 17 | 18 | uses 19 | PXL.Types, PXL.Surfaces, PXL.Devices; 20 | 21 | type 22 | TSRTDeviceContextWriter = class abstract(TCustomDeviceContextWriter) 23 | private 24 | procedure SetSurface(const Value: TConceptualPixelSurface); virtual; abstract; 25 | procedure SetSurfaceSize(const Value: TPoint2i); virtual; abstract; 26 | public 27 | property Surface: TConceptualPixelSurface write SetSurface; 28 | property SurfaceSize: TPoint2i write SetSurfaceSize; 29 | end; 30 | 31 | TSRTDeviceContext = class(TCustomDeviceContext) 32 | private type 33 | TWriter = class(TSRTDeviceContextWriter) 34 | protected 35 | procedure SetSurface(const Value: TConceptualPixelSurface); override; 36 | procedure SetSurfaceSize(const Value: TPoint2i); override; 37 | end; 38 | private 39 | FSurface: TConceptualPixelSurface; 40 | FSurfaceSize: TPoint2i; 41 | public 42 | constructor Create(const ADevice: TCustomDevice; out AWriter: TSRTDeviceContextWriter); 43 | 44 | property Surface: TConceptualPixelSurface read FSurface; 45 | property SurfaceSize: TPoint2i read FSurfaceSize; 46 | end; 47 | 48 | implementation 49 | 50 | {$REGION 'TSRTDeviceContext.TWriter'} 51 | 52 | procedure TSRTDeviceContext.TWriter.SetSurface(const Value: TConceptualPixelSurface); 53 | begin 54 | TSRTDeviceContext(Context).FSurface := Value; 55 | end; 56 | 57 | procedure TSRTDeviceContext.TWriter.SetSurfaceSize(const Value: TPoint2i); 58 | begin 59 | TSRTDeviceContext(Context).FSurfaceSize := Value; 60 | end; 61 | 62 | {$ENDREGION} 63 | {$REGION 'TSRTDeviceContext'} 64 | 65 | constructor TSRTDeviceContext.Create(const ADevice: TCustomDevice; out AWriter: TSRTDeviceContextWriter); 66 | begin 67 | inherited Create(ADevice); 68 | 69 | AWriter := TWriter.Create(Self); 70 | end; 71 | 72 | {$ENDREGION} 73 | 74 | end. 75 | -------------------------------------------------------------------------------- /Tools/readme.txt: -------------------------------------------------------------------------------- 1 | Platform eXtended Library 2 | 3 | ------------------------------------------------------------------------------- 4 | 5 | Previously, official tools were available in this sub-folder. However, since 6 | now there are so many supported platforms, the tools are available as separate 7 | download from our web site: http://asphyre.net 8 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | Platform eXtended Library v1.1.0, dated 9-Dec-2017. 2 | Copyright (c) 2000 - 2017 Yuriy Kotsarenko 3 | https://asphyre.sourceforge.net 4 | https://asphyre.net 5 | 6 | ------------------------------------------------------------------------------- 7 | 8 | This product requires either Embarcadero Delphi XE 8 (or any later version) or 9 | FreePascal 3.0 with Lazarus 1.4 (or any later versions). 10 | 11 | When used with Embarcadero Delphi, the following platforms are supported: 12 | 13 | 1) Windows 32 and 64-bit 14 | 2) Mac OS X 15 | 3) Android 16 | 4) iOS 32 and 64-bit 17 | 18 | Installation is quite straightforward, you just need to add full path to 19 | "Source" folder in IDE's "library path" for each of the platforms. Please visit 20 | our web site for additional installation instructions. 21 | 22 | When used with FreePascal/Lazarus, the following platforms are supported: 23 | 24 | 1) Windows 32 and 64-bit 25 | 2) Mac OS X Carbon (32-bit) and Cocoa (64-bit) 26 | 3) Linux 32 and 64-bit 27 | 4) Linux ARM-EL and ARM-HF 28 | 5) Compact SingleBoard Computers (w/Linux OS): 29 | I) Raspberry PI with native support for fast System Clock, GPIO, I2C and SPI. 30 | GPU rendering both on HDMI display and to external displays is supported. 31 | II) Intel Galileo gen1 and gen2 with native support for GPIO (including 32 | "fast" pins), I2C and SPI. 33 | III) Intel Edison 34 | IV) Other generic platforms with support for GPIO, I2C, SPI, UART and V4L2. 35 | 6) Android (experimental) 36 | 37 | If you have a working FreePascal/Lazarus environment with cross-compilation 38 | to the necessary platforms, then no additional installation is required, just 39 | open any of the available samples and start working from there. 40 | 41 | In order to use PXL documentation, locate "Help" sub-folder in this package 42 | and open "index.html". Alternatively, you can create a shortcut to this file 43 | on your desktop. 44 | 45 | Remember that this library and its source code are distributed under terms of 46 | Apache License version 2.0. By using this product, you acknowledge your consent 47 | to be bound by the terms of Apache v2 license. 48 | 49 | If you need to use this framework for a project with a different licensing 50 | requirements, feel free to contact the author for more options. 51 | 52 | ------------------------------------------------------------------------------- 53 | Some of the included artwork was made by Humberto Andrade and is copyright 54 | protected. Any redistribution of this artwork outside of the framework is 55 | strictly prohibited. --------------------------------------------------------------------------------