precompile checks

This commit is contained in:
visionmercer 2022-09-19 01:27:48 +02:00
commit 3edb188921
22 changed files with 458 additions and 9 deletions

364
.gitignore vendored Normal file
View file

@ -0,0 +1,364 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# Built extensions
*.vsix
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# QB64 | QB64 VS Code Extension
db/qb64.sqbpro
/out
out/extension.js
out/extension.js.map
.bak-bas
.bak-bi
.bak-bm
.cmp-out
.json-bak

17
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,17 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "QB64 Build and Run",
"type": "QB64",
"request": "launch",
"command": "${config:qb64.installPath}/qb64.exe -c \"${fileDirname}/${fileBasename}\" -o \"${fileDirname}/${fileBasenameNoExtension}.exe\" -x; start \"${fileDirname}/${fileBasenameNoExtension}.exe\"", "terminalName": "QB64",
"terminalIndex": -1,
"showTerminal": true,
"linux": {
"command": "${config:qb64.installPath}/qb64 -c '${fileDirname}/${fileBasename}' -o '${fileDirname}/${fileBasenameNoExtension}' -x; ${fileDirname}/${fileBasenameNoExtension}" },
"osx": {
"command": "${config:qb64.installPath}/qb64 -c '${fileDirname}/${fileBasename}' -o '${fileDirname}/${fileBasenameNoExtension}' -x; ${fileDirname}/${fileBasenameNoExtension}" }
}
]
}

11
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,11 @@
{
"files.exclude": {
"**/*.bas-bak": true,
"**/*.bi-bak": true,
"**/*.bm-bak": true,
"**/*.cmp-out": true,
"**/*.json-bak": true
},
"files.defaultLanguage": "QB64",
"editor.multiCursorModifier": "ctrlCmd"
}

View file

@ -1,3 +1,5 @@
$if atob = undefined then
$let atob = defined
Function atob$ (strng As String) Function atob$ (strng As String)
Const B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" Const B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim c1 As _Unsigned _Byte Dim c1 As _Unsigned _Byte
@ -40,4 +42,5 @@ Function atob$ (strng As String)
End If End If
Next Next
atob$ = Buffer atob$ = Buffer
End Function End Function
$end if

View file

@ -1,2 +1,5 @@
$if bool = undefined then
$let bool = defined
Const False = 0 Const False = 0
Const True = Not False Const True = Not False
$end if

View file

@ -1,3 +1,5 @@
$if btoa = undefined then
$let btoa = defined
Function btoa$ (s As String) Function btoa$ (s As String)
Const B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" Const B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim c1 As _Byte Dim c1 As _Byte
@ -16,4 +18,5 @@ Function btoa$ (s As String)
If c4 > -1 Then Buffer = Buffer + Chr$(((c3 * 64 + c4) And 255)) If c4 > -1 Then Buffer = Buffer + Chr$(((c3 * 64 + c4) And 255))
Next i Next i
btoa$ = Buffer btoa$ = Buffer
End Function End Function
$end if

View file

@ -1,3 +1,5 @@
$if ConsoleColor = undefined then
$let ConsoleColor = defined
Sub ConsoleColor (Colour As _Unsigned Long) Sub ConsoleColor (Colour As _Unsigned Long)
Select Case Colour Select Case Colour
Case 0 TO 255 Case 0 TO 255
@ -5,4 +7,5 @@ Sub ConsoleColor (Colour As _Unsigned Long)
Case Is > 255 Case Is > 255
Print Chr$(27) + "[38;2;" + _Trim$(Str$(_Red32(Colour))) + ";" + _Trim$(Str$(_Green32(Colour))) + ";" + _Trim$(Str$(_Blue32(Colour))) + "m"; Print Chr$(27) + "[38;2;" + _Trim$(Str$(_Red32(Colour))) + ";" + _Trim$(Str$(_Green32(Colour))) + ";" + _Trim$(Str$(_Blue32(Colour))) + "m";
End Select End Select
End Sub End Sub
$end if

View file

@ -1,3 +1,5 @@
$if grayscale = undefined then
$let grayscale = defined
Sub grayscale (image As Long) Sub grayscale (image As Long)
Dim mimg As _MEM Dim mimg As _MEM
Dim As _Offset start, length Dim As _Offset start, length
@ -16,4 +18,5 @@ Sub grayscale (image As Long)
start = start + 4 start = start + 4
Loop Until start = length Loop Until start = length
_MemFree mimg _MemFree mimg
End Sub End Sub
$end if

View file

@ -1,3 +1,6 @@
$if Lerp = undefined then
$let Lerp = defined
Function Lerp (v0, v1, t) Function Lerp (v0, v1, t)
Lerp = (1 - t) * v0 + t * v1 Lerp = (1 - t) * v0 + t * v1
End Function End Function
$end if

View file

@ -1,3 +1,5 @@
$if LoadHexPalette = undefined then
$let LoadHexPalette = defined
SUB LoadHexPalette (Filename$, palettearray() AS _UNSIGNED LONG) SUB LoadHexPalette (Filename$, palettearray() AS _UNSIGNED LONG)
DIM i AS INTEGER DIM i AS INTEGER
DIM ff AS INTEGER DIM ff AS INTEGER
@ -17,3 +19,4 @@ SUB LoadHexPalette (Filename$, palettearray() AS _UNSIGNED LONG)
CLOSE ff CLOSE ff
END IF END IF
END SUB END SUB
$end if

5
max.bm
View file

@ -1,3 +1,6 @@
$if Max = undefined then
$let Max = defined
FUNCTION Max (num1, num2) FUNCTION Max (num1, num2)
Max = ((num1 > num2) * -num1) + ((num2 >= num1) * -num2) Max = ((num1 > num2) * -num1) + ((num2 >= num1) * -num2)
END FUNCTION END FUNCTION
$end if

5
min.bm
View file

@ -1,3 +1,6 @@
$if Min = undefined then
$let Min = defined
FUNCTION Min (num1, num2) FUNCTION Min (num1, num2)
Min = ((num1 < num2) * -num1) + ((num2 <= num1) * -num2) Min = ((num1 < num2) * -num1) + ((num2 <= num1) * -num2)
END FUNCTION END FUNCTION
$end if

View file

@ -1,3 +1,5 @@
$if negative = undefined then
$let negative = defined
Sub negative (image As Long) Sub negative (image As Long)
Dim olddest As Long Dim olddest As Long
Dim oldsource As Long Dim oldsource As Long
@ -23,3 +25,4 @@ Sub negative (image As Long)
_Dest olddest _Dest olddest
_Source oldsource _Source oldsource
End Sub End Sub
$end if

View file

@ -1,3 +1,5 @@
$if noframe = undefined then
$let noframe = defined
Declare Dynamic Library "User32" Declare Dynamic Library "User32"
Function GetWindowLongA& (ByVal hWnd As _Offset, Byval nIndex As Long) Function GetWindowLongA& (ByVal hWnd As _Offset, Byval nIndex As Long)
Function SetWindowLongA& (ByVal hWnd As _Offset, Byval nIndex As Long, Byval dwNewLong As Long) Function SetWindowLongA& (ByVal hWnd As _Offset, Byval nIndex As Long, Byval dwNewLong As Long)
@ -24,3 +26,4 @@ Style = (WS_CAPTION Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX Or W
if Not SetWindowLongA&(hwnd, GWL_STYLE, winstyle And Not Style) Then if Not SetWindowLongA&(hwnd, GWL_STYLE, winstyle And Not Style) Then
End If End If
$end if

View file

@ -1,3 +1,5 @@
$if SaveAnsi = undefined then
$let SaveAnsi = defined
Sub SaveAnsi (Handle As Long, Filename As String) Sub SaveAnsi (Handle As Long, Filename As String)
If _PixelSize <> 0 Then Exit Sub If _PixelSize <> 0 Then Exit Sub
Dim Bold As _Byte Dim Bold As _Byte
@ -60,4 +62,5 @@ Function ansicolor$ (BasicColor)
Case 6: ansicolor$ = "3" Case 6: ansicolor$ = "3"
Case 7: ansicolor$ = "7" Case 7: ansicolor$ = "7"
End Select End Select
End Function End Function
$end if

View file

@ -1,3 +1,5 @@
$if saveBinaryPBM = undefined then
$let saveBinaryPBM = defined
Sub saveBinaryPBM (handle As Long, filename As String) Sub saveBinaryPBM (handle As Long, filename As String)
Dim imgwidth As Long Dim imgwidth As Long
Dim imgheight As Long Dim imgheight As Long
@ -37,3 +39,4 @@ Sub saveBinaryPBM (handle As Long, filename As String)
Close #ff Close #ff
_Source oldsource _Source oldsource
End Sub End Sub
$end if

View file

@ -1,3 +1,5 @@
$if SaveBinaryPPM = undefined then
$let SaveBinaryPPM = defined
Sub SaveBinaryPPM (imageHandle As Long, fileName As String) Sub SaveBinaryPPM (imageHandle As Long, fileName As String)
Dim r As _Unsigned _Byte Dim r As _Unsigned _Byte
Dim g As _Unsigned _Byte Dim g As _Unsigned _Byte
@ -43,3 +45,4 @@ Sub SaveBinaryPPM (imageHandle As Long, fileName As String)
_MemFree image _MemFree image
_MemFree filebuffer _MemFree filebuffer
End Sub End Sub
$end if

View file

@ -1,3 +1,5 @@
$if SaveHexPalette = undefined then
$let SaveHexPalette = defined
SUB SaveHexPalette (palettearray() AS _UNSIGNED LONG, filename AS STRING) SUB SaveHexPalette (palettearray() AS _UNSIGNED LONG, filename AS STRING)
DIM ff AS LONG DIM ff AS LONG
DIM i AS LONG DIM i AS LONG
@ -9,3 +11,4 @@ SUB SaveHexPalette (palettearray() AS _UNSIGNED LONG, filename AS STRING)
NEXT i NEXT i
CLOSE ff CLOSE ff
END SUB END SUB
$end if

View file

@ -1,3 +1,5 @@
$if Solarize = undefined then
$let Solarize = defined
Sub Solarize (image As Long, threshold) Sub Solarize (image As Long, threshold)
Dim oldDest As Long Dim oldDest As Long
Dim oldSource As Long Dim oldSource As Long
@ -23,3 +25,4 @@ Sub Solarize (image As Long, threshold)
_Dest oldDest _Dest oldDest
_Source oldSource _Source oldSource
End Sub End Sub
$end if

View file

@ -1,3 +1,6 @@
$if Truncate = undefined then
$let Truncate = defined
Function Truncate~%% (value&) Function Truncate~%% (value&)
Truncate~%% = (value& > 0) * (((value& < 256) * value&) + ((value& > 255) * 255)) Truncate~%% = (value& > 0) * (((value& < 256) * value&) + ((value& > 255) * 255))
End Function End Function
$end if

View file

@ -1,3 +1,5 @@
$if urldecode = undefined then
$let urldecode = defined
Function urldecode$ (strng As String) Function urldecode$ (strng As String)
Dim Tmpstr As String Dim Tmpstr As String
Do Until count >= Len(strng) Do Until count >= Len(strng)
@ -14,3 +16,4 @@ Function urldecode$ (strng As String)
Loop Loop
urldecode = Tmpstr urldecode = Tmpstr
End Function End Function
$end if

View file

@ -1,3 +1,5 @@
$if urlencode = undefined then
$let urlencode = defined
Function urlencode$ (strng$) Function urlencode$ (strng$)
Dim buf$, char$ Dim buf$, char$
For i = 1 To Len(strng$) For i = 1 To Len(strng$)
@ -14,3 +16,4 @@ Function urlencode$ (strng$)
Next i Next i
urlencode$ = buf$ urlencode$ = buf$
End Function End Function
$end if