Стартовый пул
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="9"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<MainUnitHasCreateFormStatements Value="False"/>
|
||||
<MainUnitHasTitleStatement Value="False"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="bgra_pascalscript_library"/>
|
||||
<UseAppBundle Value="False"/>
|
||||
<ResourceType Value="res"/>
|
||||
</General>
|
||||
<i18n>
|
||||
<EnableI18N LFM="False"/>
|
||||
</i18n>
|
||||
<BuildModes Count="3">
|
||||
<Item1 Name="Debug" Default="True"/>
|
||||
<Item2 Name="Release">
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="bgrabitmap"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value=".."/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<SmartLinkUnit Value="True"/>
|
||||
<RelocatableUnit Value="True"/>
|
||||
<Optimizations>
|
||||
<OptimizationLevel Value="3"/>
|
||||
</Optimizations>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
<Options>
|
||||
<ExecutableType Value="Library"/>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
</Item2>
|
||||
<Item3 Name="Release_Win64">
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="bgrabitmap"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value=".."/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<SmartLinkUnit Value="True"/>
|
||||
<RelocatableUnit Value="True"/>
|
||||
<TargetCPU Value="x86_64"/>
|
||||
<TargetOS Value="win64"/>
|
||||
<Optimizations>
|
||||
<OptimizationLevel Value="3"/>
|
||||
</Optimizations>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
<Options>
|
||||
<ExecutableType Value="Library"/>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
</Item3>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="bgrapascalscriptcomponent"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="BGRABitmapPack4NoGUI"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="2">
|
||||
<Unit0>
|
||||
<Filename Value="bgra_pascalscript_library.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="..\bgrapascalscript.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit1>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="bgrabitmap"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value=".."/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
<IncludeAssertionCode Value="True"/>
|
||||
</SyntaxOptions>
|
||||
</Parsing>
|
||||
<CodeGeneration>
|
||||
<RelocatableUnit Value="True"/>
|
||||
<Checks>
|
||||
<IOChecks Value="True"/>
|
||||
<RangeChecks Value="True"/>
|
||||
<OverflowChecks Value="True"/>
|
||||
<StackChecks Value="True"/>
|
||||
</Checks>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
<UseHeaptrc Value="True"/>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<ExecutableType Value="Library"/>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
@@ -0,0 +1,431 @@
|
||||
{
|
||||
Created by BGRA Controls Team
|
||||
Circular, lainz (007) and Fred vS.
|
||||
For detailed information see readme.txt
|
||||
|
||||
Site: https://sourceforge.net/p/bgra-controls/
|
||||
Wiki: http://wiki.lazarus.freepascal.org/BGRAControls
|
||||
Forum: http://forum.lazarus.freepascal.org/index.php/board,46.0.html
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version with the following modification:
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent modules,and
|
||||
to copy and distribute the resulting executable under terms of your choice,
|
||||
provided that you also meet, for each linked independent module, the terms
|
||||
and conditions of the license of that module. An independent module is a
|
||||
module which is not derived from or based on this library. If you modify
|
||||
this library, you may extend this exception to your version of the library,
|
||||
but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
}
|
||||
|
||||
|
||||
library bgra_pascalscript_library;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
{.$DEFINE Java} //// uncomment if you want a Java-compatible library
|
||||
|
||||
uses
|
||||
{$IF DEFINED(Java)}
|
||||
jni,
|
||||
{$endif}
|
||||
Classes,
|
||||
BGRAPascalScript,
|
||||
BGRABitmapTypes;
|
||||
|
||||
{ String Utility }
|
||||
function PWideCharToUTF8(const str: PWideChar): string;
|
||||
begin
|
||||
result := UTF8Encode(WideString(str));
|
||||
end;
|
||||
|
||||
{ Library }
|
||||
|
||||
function GetHighestID({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject {$endif}): integer; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.bgra_GetHighestID;
|
||||
end;
|
||||
|
||||
function rgb({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} red, green, blue: byte): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.rgb(red, green, blue);
|
||||
end;
|
||||
|
||||
function rgba({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} red, green, blue, alpha: byte): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.rgba(red, green, blue, alpha);
|
||||
end;
|
||||
|
||||
function getBlue({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor): byte; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.getBlue(aColor);
|
||||
end;
|
||||
|
||||
function getGreen({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor): byte; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.getGreen(AColor);
|
||||
end;
|
||||
|
||||
function getRed({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor): byte; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.getRed(AColor);
|
||||
end;
|
||||
|
||||
function getAlpha({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor): byte; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.getAlpha(AColor);
|
||||
end;
|
||||
|
||||
function setBlue({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.setBlue(AColor, AValue);
|
||||
end;
|
||||
|
||||
function setGreen({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.setGreen(AColor, AValue);
|
||||
end;
|
||||
|
||||
function setRed({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.setRed(AColor, AValue);
|
||||
end;
|
||||
|
||||
function setAlpha({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.setAlpha(AColor, AValue);
|
||||
end;
|
||||
|
||||
{Constructors}
|
||||
procedure Create({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_Create(id);
|
||||
end;
|
||||
|
||||
procedure CreateWithSize({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; AWidth, AHeight: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_CreateWithSize(id, AWidth, AHeight);
|
||||
end;
|
||||
|
||||
procedure Fill({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; AColor: TBGRAColor); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_Fill(id, AColor);
|
||||
end;
|
||||
|
||||
procedure SetPixel({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; x, y: integer; AColor: TBGRAColor); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_SetPixel(id, x, y, AColor);
|
||||
end;
|
||||
|
||||
function GetPixel({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; x, y: integer): TBGRAColor; {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
Result := BGRAPascalScript.bgra_GetPixel(id, x, y);
|
||||
end;
|
||||
|
||||
{$IF DEFINED(Java)}
|
||||
procedure CreateFromFile(PEnv: PJNIEnv; Obj: JObject ; id: integer; AFilename: JString); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_CreateFromFile(id, (PEnv^^).GetStringUTFChars(PEnv, AFilename, nil));
|
||||
(PEnv^^).ReleaseStringUTFChars(PEnv, AFilename, nil);
|
||||
end;
|
||||
{$else}
|
||||
procedure CreateFromFile(id: integer; AFilename: PWideChar); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_CreateFromFile(id, PWideCharToUTF8(AFilename));
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
procedure Destroy({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_Destroy(id);
|
||||
end;
|
||||
|
||||
procedure DestroyAll({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject{$endif}); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_DestroyAll;
|
||||
end;
|
||||
|
||||
{$IF DEFINED(Java)}
|
||||
procedure SaveToFile(PEnv: PJNIEnv; Obj: JObject ; id: integer; Filename: JString); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_SaveToFile(id, (PEnv^^).GetStringUTFChars(PEnv, Filename, nil));
|
||||
(PEnv^^).ReleaseStringUTFChars(PEnv, Filename, nil);
|
||||
end;
|
||||
{$else}
|
||||
procedure SaveToFile(id: integer; filename: PWideChar); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_SaveToFile(id, PWideCharToUTF8(filename));
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
{ Filters }
|
||||
|
||||
procedure FilterSmartZoom3({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; Option: TMedianOption); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterSmartZoom3(id, Option);
|
||||
end;
|
||||
|
||||
procedure FilterMedian({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; Option: TMedianOption); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterMedian(id, Option);
|
||||
end;
|
||||
|
||||
procedure FilterSmooth({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterSmooth(id);
|
||||
end;
|
||||
|
||||
procedure FilterSharpen({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; Amount: single); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterSharpen(id, Amount);
|
||||
end;
|
||||
|
||||
procedure FilterSharpenRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect; Amount: single); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterSharpenRect(id, ABounds, Amount);
|
||||
end;
|
||||
|
||||
procedure FilterContour({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterContour(id);
|
||||
end;
|
||||
|
||||
procedure FilterPixelate({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; pixelSize: integer;
|
||||
useResample: boolean; filter: TResampleFilter); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterPixelate(id, pixelSize, useResample, filter);
|
||||
end;
|
||||
|
||||
procedure FilterBlurRadial({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; radius: integer; blurType: TRadialBlurType); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterBlurRadial(id, radius, blurType);
|
||||
end;
|
||||
|
||||
procedure FilterBlurRadialRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect;
|
||||
radius: integer; blurType: TRadialBlurType); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterBlurRadialRect(id, ABounds, radius, blurType);
|
||||
end;
|
||||
|
||||
procedure FilterBlurMotion({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; distance: integer;
|
||||
angle: single; oriented: boolean); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterBlurMotion(id, distance, angle, oriented);
|
||||
end;
|
||||
|
||||
procedure FilterBlurMotionRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect;
|
||||
distance: integer; angle: single; oriented: boolean); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterBlurMotionRect(id, ABounds, distance, angle, oriented);
|
||||
end;
|
||||
|
||||
procedure FilterCustomBlur({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; mask: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterCustomBlur(id, mask);
|
||||
end;
|
||||
|
||||
procedure FilterCustomBlurRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect; mask: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterCustomBlurRect(id, ABounds, mask);
|
||||
end;
|
||||
|
||||
procedure FilterEmboss({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; angle: single); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterEmboss(id, angle);
|
||||
end;
|
||||
|
||||
procedure FilterEmbossRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; angle: single; ABounds: TRect); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterEmbossRect(id, angle, ABounds);
|
||||
end;
|
||||
|
||||
procedure FilterEmbossHighlight({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; FillSelection: boolean); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterEmbossHighlight(id, FillSelection);
|
||||
end;
|
||||
|
||||
procedure FilterEmbossHighlightBorder({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; FillSelection: boolean;
|
||||
BorderColor: TBGRAColor); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterEmbossHighlightBorder(id, FillSelection, BorderColor);
|
||||
end;
|
||||
|
||||
procedure FilterEmbossHighlightBorderAndOffset({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer;
|
||||
FillSelection: boolean; BorderColor: TBGRAColor; Offset: TPoint); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterEmbossHighlightBorderAndOffset(id, FillSelection, BorderColor, Offset);
|
||||
end;
|
||||
|
||||
procedure FilterGrayscale({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterGrayscale(id);
|
||||
end;
|
||||
|
||||
procedure FilterGrayscaleRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterGrayscaleRect(id, ABounds);
|
||||
end;
|
||||
|
||||
procedure FilterNormalize({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; eachChannel: boolean); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterNormalize(id, eachChannel);
|
||||
end;
|
||||
|
||||
procedure FilterNormalizeRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect; eachChannel: boolean); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterNormalizeRect(id, ABounds, eachChannel);
|
||||
end;
|
||||
|
||||
procedure FilterRotate({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; origin: TPointF; angle: single;
|
||||
correctBlur: boolean); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterRotate(id, origin, angle, correctBlur);
|
||||
end;
|
||||
|
||||
procedure FilterSphere({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterSphere(id);
|
||||
end;
|
||||
|
||||
procedure FilterTwirl({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ACenter: TPoint; ARadius: single;
|
||||
ATurn: single; AExponent: single); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterTwirl(id, ACenter, ARadius, ATurn, AExponent);
|
||||
end;
|
||||
|
||||
procedure FilterTwirlRect({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer; ABounds: TRect; ACenter: TPoint;
|
||||
ARadius: single; ATurn: single; AExponent: single); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterTwirlRect(id, ABounds, ACenter, ARadius, ATurn, AExponent);
|
||||
end;
|
||||
|
||||
procedure FilterCylinder({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterCylinder(id);
|
||||
end;
|
||||
|
||||
procedure FilterPlane({$IF DEFINED(Java)}PEnv: PJNIEnv; Obj: JObject ; {$endif} id: integer); {$IFDEF windows}stdcall;{$ELSE}cdecl;{$ENDIF}
|
||||
begin
|
||||
BGRAPascalScript.bgra_FilterPlane(id);
|
||||
end;
|
||||
|
||||
exports
|
||||
{$IF DEFINED(Java)}
|
||||
GetHighestID name 'Java_bgra_gethighestid',
|
||||
rgb name 'Java_bgra_rgb',
|
||||
rgba name 'Java_bgra_rgba',
|
||||
getBlue name 'Java_bgra_getblue',
|
||||
getGreen name 'Java_bgra_getgreen',
|
||||
getRed name 'Java_bgra_getred',
|
||||
getAlpha name 'Java_bgra_getalpha',
|
||||
setBlue name 'Java_bgra_setblue',
|
||||
setGreen name 'Java_bgra_setgreen',
|
||||
setRed name 'Java_bgra_setred',
|
||||
setAlpha name 'Java_bgra_setalpha',
|
||||
Create name 'Java_bgra_create',
|
||||
CreateWithSize name 'Java_bgra_createwithsize',
|
||||
Fill name 'Java_bgra_fill',
|
||||
SetPixel name 'Java_bgra_setpixel',
|
||||
GetPixel name 'Java_bgra_getpixel',
|
||||
CreateFromFile name 'Java_bgra_createfromfile',
|
||||
Destroy name 'Java_bgra_destroy',
|
||||
DestroyAll name 'Java_bgra_destroyall',
|
||||
SaveToFile name 'Java_bgra_savetofile',
|
||||
{ Filters }
|
||||
FilterSmartZoom3 name 'Java_bgra_filtersmartzoom3',
|
||||
FilterMedian name 'Java_bgra_filtermedian',
|
||||
FilterSmooth name 'Java_bgra_filtersmooth',
|
||||
FilterSharpen name 'Java_bgra_filtersharpen',
|
||||
FilterSharpenRect name 'Java_bgra_filtersharpenrect',
|
||||
FilterContour name 'Java_bgra_filtercontour',
|
||||
FilterPixelate name 'Java_bgra_filterpixelate',
|
||||
FilterBlurRadial name 'Java_bgra_filterblurradial',
|
||||
FilterBlurRadialRect name 'Java_bgra_filterblurradialrect',
|
||||
FilterBlurMotion name 'Java_bgra_filterblurmotion',
|
||||
FilterBlurMotionRect name 'Java_bgra_filterblurmotionrect',
|
||||
FilterCustomBlur name 'Java_bgra_filtercustomblur',
|
||||
FilterCustomBlurRect name 'Java_bgra_filtercustomblurrect',
|
||||
FilterEmboss name 'Java_bgra_filteremboss',
|
||||
FilterEmbossRect name 'Java_bgra_filterembossrect',
|
||||
FilterEmbossHighlight name 'Java_bgra_filterembosshighlight',
|
||||
FilterEmbossHighlightBorder name 'Java_bgra_filterembosshighlightborder',
|
||||
FilterEmbossHighlightBorderAndOffset name 'Java_bgra_filterembosshighlightborderandoffset',
|
||||
FilterGrayscale name 'Java_bgra_filtergrayscale',
|
||||
FilterGrayscaleRect name 'Java_bgra_filtergrayscalerect',
|
||||
FilterNormalize name 'Java_bgra_filternormalize',
|
||||
FilterNormalizeRect name 'Java_bgra_filternormalizerect',
|
||||
FilterRotate name 'Java_bgra_filterrotate',
|
||||
FilterSphere name 'Java_bgra_filtersphere',
|
||||
FilterTwirl name 'filtertwirl',
|
||||
FilterTwirlRect name 'Java_bgra_filtertwirlrect',
|
||||
FilterCylinder name 'Java_bgra_filtercylinder',
|
||||
FilterPlane name 'Java_bgra_filterplane';
|
||||
{$else}
|
||||
GetHighestID name 'gethighestid',
|
||||
rgb name 'rgb',
|
||||
rgba name 'rgba',
|
||||
getBlue name 'getblue',
|
||||
getGreen name 'getgreen',
|
||||
getRed name 'getred',
|
||||
getAlpha name 'getalpha',
|
||||
setBlue name 'setblue',
|
||||
setGreen name 'setgreen',
|
||||
setRed name 'setred',
|
||||
setAlpha name 'setalpha',
|
||||
Create name 'create',
|
||||
CreateWithSize name 'createwithsize',
|
||||
Fill name 'fill',
|
||||
SetPixel name 'setpixel',
|
||||
GetPixel name 'getpixel',
|
||||
CreateFromFile name 'createfromfile',
|
||||
Destroy name 'destroy',
|
||||
DestroyAll name 'destroyall',
|
||||
SaveToFile name 'savetofile',
|
||||
{ Filters }
|
||||
FilterSmartZoom3 name 'filtersmartzoom3',
|
||||
FilterMedian name 'filtermedian',
|
||||
FilterSmooth name 'filtersmooth',
|
||||
FilterSharpen name 'filtersharpen',
|
||||
FilterSharpenRect name 'filtersharpenrect',
|
||||
FilterContour name 'filtercontour',
|
||||
FilterPixelate name 'filterpixelate',
|
||||
FilterBlurRadial name 'filterblurradial',
|
||||
FilterBlurRadialRect name 'filterblurradialrect',
|
||||
FilterBlurMotion name 'filterblurmotion',
|
||||
FilterBlurMotionRect name 'filterblurmotionrect',
|
||||
FilterCustomBlur name 'filtercustomblur',
|
||||
FilterCustomBlurRect name 'filtercustomblurrect',
|
||||
FilterEmboss name 'filteremboss',
|
||||
FilterEmbossRect name 'filterembossrect',
|
||||
FilterEmbossHighlight name 'filterembosshighlight',
|
||||
FilterEmbossHighlightBorder name 'filterembosshighlightborder',
|
||||
FilterEmbossHighlightBorderAndOffset name 'filterembosshighlightborderandoffset',
|
||||
FilterGrayscale name 'filtergrayscale',
|
||||
FilterGrayscaleRect name 'filtergrayscalerect',
|
||||
FilterNormalize name 'filternormalize',
|
||||
FilterNormalizeRect name 'filternormalizerect',
|
||||
FilterRotate name 'filterrotate',
|
||||
FilterSphere name 'filtersphere',
|
||||
FilterTwirl name 'filtertwirl',
|
||||
FilterTwirlRect name 'filtertwirlrect',
|
||||
FilterCylinder name 'filtercylinder',
|
||||
FilterPlane name 'filterplane';
|
||||
{$endif}
|
||||
|
||||
begin
|
||||
end.
|
171
bgracontrols/bgra_pascalscript_library/c#/BGRABitmap.cs
Normal file
171
bgracontrols/bgra_pascalscript_library/c#/BGRABitmap.cs
Normal file
@@ -0,0 +1,171 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace BGRABitmapLibrary
|
||||
{
|
||||
public static class BGRABitmap
|
||||
{
|
||||
/* Types */
|
||||
|
||||
public enum MedianOption : byte { None, LowSmooth, MediumSmooth, HighSmooth };
|
||||
|
||||
public enum ResampleFilter : byte { Box, Linear, HalfCosine, Cosine, Bicubic, Mitchell, Spline, Lanczos2, Lanczos3, Lanczos4, BestQuality };
|
||||
|
||||
public enum RadialBlurType : byte { Normal, Disk, Corona, Precise, Fast, Box };
|
||||
|
||||
/* Constructors */
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "create")]
|
||||
public static extern void Create(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "createwithsize")]
|
||||
public static extern void CreateWithSize(int id, int AWidth, int AHeight);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "destroy")]
|
||||
public static extern void Destroy(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "destroyall")]
|
||||
public static extern void DestroyAll();
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "gethighestid")]
|
||||
public static extern int GetHighestID();
|
||||
|
||||
/* Files */
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "createfromfile")]
|
||||
public static extern void CreateFromFile(int id, [MarshalAs(UnmanagedType.LPWStr)]string AFileName);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "savetofile")]
|
||||
public static extern void SaveToFile(int id, [MarshalAs(UnmanagedType.LPWStr)]string AFileName);
|
||||
|
||||
/* Color */
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "rgb")]
|
||||
public static extern uint rgb(byte red, byte green, byte blue);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "rgba")]
|
||||
public static extern uint rgba(byte red, byte green, byte blue, byte alpha);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "getblue")]
|
||||
public static extern byte getBlue(uint AColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "getgreen")]
|
||||
public static extern byte getGreen(uint AColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "getred")]
|
||||
public static extern byte getRed(uint AColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "getalpha")]
|
||||
public static extern byte getAlpha(uint AColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "setblue")]
|
||||
public static extern uint setBlue(uint AColor, byte AValue);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "setgreen")]
|
||||
public static extern uint setGreen(uint AColor, byte AValue);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "setred")]
|
||||
public static extern uint setRed(uint AColor, byte AValue);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "setalpha")]
|
||||
public static extern uint setAlpha(uint AColor, byte AValue);
|
||||
|
||||
/* Pixels */
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "fill")]
|
||||
public static extern void Fill(int id, uint AColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "setpixel")]
|
||||
public static extern void SetPixel(int id, int x, int y, uint AColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "getpixel")]
|
||||
public static extern uint GetPixel(int id, int x, int y);
|
||||
|
||||
/* Filters */
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtersmartzoom3")]
|
||||
public static extern void FilterSmartZoom3(int id, MedianOption Option);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtermedian")]
|
||||
public static extern void FilterMedian(int id, MedianOption Option);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtersmooth")]
|
||||
public static extern void FilterSmooth(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtersharpen")]
|
||||
public static extern void FilterSharpen(int id, Single Amount);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtersharpenrect")]
|
||||
public static extern void FilterSharpen(int id, Rectangle ABounds, Single Amount);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtercontour")]
|
||||
public static extern void FilterContour(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterpixelate")]
|
||||
public static extern void FilterPixelate(int id, int pixelSize, bool useResample, ResampleFilter filter);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterblurradial")]
|
||||
public static extern void FilterBlurRadial(int id, int radius, RadialBlurType blurType);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterblurradialrect")]
|
||||
public static extern void FilterBlurRadial(int id, Rectangle ABounds, int radius, RadialBlurType blurType);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterblurmotion")]
|
||||
public static extern void FilterBlurMotion(int id, int distance, Single angle, bool oriented);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterblurmotionrect")]
|
||||
public static extern void FilterBlurMotion(int id, Rectangle ABounds, int distance, Single angle, bool oriented);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtercustomblur")]
|
||||
public static extern void FilterCustomBlur(int id, int mask);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtercustomblur")]
|
||||
public static extern void FilterCustomBlur(int id, Rectangle ABounds, int mask);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filteremboss")]
|
||||
public static extern void FilterEmboss(int id, Single angle);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterembossrect")]
|
||||
public static extern void FilterEmboss(int id, Single angle, Rectangle ABounds);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterembosshighlight")]
|
||||
public static extern void FilterEmboss(int id, bool FillSelection);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterembosshighlightborder")]
|
||||
public static extern void FilterEmboss(int id, bool FillSelection, uint BorderColor);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterembosshighlightborderandoffset")]
|
||||
public static extern void FilterEmboss(int id, bool FillSelection, uint BorderColor, Point Offset);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtergrayscale")]
|
||||
public static extern void FilterGrayscale(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtergrayscalerect")]
|
||||
public static extern void FilterGrayscale(int id, Rectangle ABounds);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filternormalize")]
|
||||
public static extern void FilterNormalize(int id, bool eachChannel);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filternormalizerect")]
|
||||
public static extern void FilterNormalize(int id, Rectangle ABounds, bool eachChannel);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterrotate")]
|
||||
public static extern void FilterRotate(int id, PointF origin, Single angle, bool correctBlur);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtersphere")]
|
||||
public static extern void FilterSphere(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtertwirl")]
|
||||
public static extern void FilterTwirl(int id, Point ACenter, Single ARadius, Single ATurn, Single AExponent);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtertwirlrect")]
|
||||
public static extern void FilterTwirl(int id, Rectangle ABounds, Point ACenter, Single ARadius, Single ATurn, Single AExponent);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filtercylinder")]
|
||||
public static extern void FilterCylinder(int id);
|
||||
|
||||
[DllImport("bgrabitmap", EntryPoint = "filterplane")]
|
||||
public static extern void FilterPlane(int id);
|
||||
}
|
||||
}
|
13
bgracontrols/bgra_pascalscript_library/java/bgra.java
Normal file
13
bgracontrols/bgra_pascalscript_library/java/bgra.java
Normal file
@@ -0,0 +1,13 @@
|
||||
public class bgra {
|
||||
/////////////////////// the bgra library declarations ///////////////
|
||||
public static native void create(int num);
|
||||
public static native void createwithsize(int num, int left, int top);
|
||||
|
||||
public static native void fill(int num, int color);
|
||||
public static native int rgb(int r, int g, int b);
|
||||
public static native void filtersmartzoom3(int num, int typ);
|
||||
public static native void savetofile(int num, String fn);
|
||||
public static native void destroy(int num);
|
||||
|
||||
}
|
||||
|
23
bgracontrols/bgra_pascalscript_library/java/test.java
Normal file
23
bgracontrols/bgra_pascalscript_library/java/test.java
Normal file
@@ -0,0 +1,23 @@
|
||||
import static java.lang.System.out;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
public class test {
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
System.loadLibrary("bgrabitmap");
|
||||
|
||||
out.println("Library is loaded...");
|
||||
out.println("______________________________________________________________________");
|
||||
out.println();
|
||||
|
||||
bgra.createwithsize(0,100,100);
|
||||
bgra.fill(0, bgra.rgb(0, 255, 0));
|
||||
bgra.savetofile(0, "test.png");
|
||||
bgra.destroy(0);
|
||||
out.println("Bitmap is saved...");
|
||||
out.println("______________________________________________________________________");
|
||||
out.println();
|
||||
|
||||
}
|
||||
}
|
573
bgracontrols/bgra_pascalscript_library/jni.pas
Normal file
573
bgracontrols/bgra_pascalscript_library/jni.pas
Normal file
@@ -0,0 +1,573 @@
|
||||
unit jni;
|
||||
|
||||
{$ifdef fpc}
|
||||
{$mode delphi}
|
||||
{$packrecords c}
|
||||
{$endif}
|
||||
|
||||
{$macro on}
|
||||
{$ifdef mswindows}
|
||||
{$define jnicall:=stdcall}
|
||||
{$else}
|
||||
{$define jnicall:=cdecl}
|
||||
{$endif}
|
||||
|
||||
interface
|
||||
|
||||
(*
|
||||
* Manifest constants.
|
||||
*)
|
||||
const JNI_FALSE=0;
|
||||
JNI_TRUE=1;
|
||||
|
||||
JNI_VERSION_1_1=$00010001;
|
||||
JNI_VERSION_1_2=$00010002;
|
||||
JNI_VERSION_1_4=$00010004;
|
||||
JNI_VERSION_1_6=$00010006;
|
||||
|
||||
JNI_OK=0; // no error
|
||||
JNI_ERR=-1; // generic error
|
||||
JNI_EDETACHED=-2; // thread detached from the VM
|
||||
JNI_EVERSION=-3; // JNI version error
|
||||
|
||||
JNI_COMMIT=1; // copy content, do not free buffer
|
||||
JNI_ABORT=2; // free buffer w/o copying back
|
||||
|
||||
(*
|
||||
* Type definitions.
|
||||
*)
|
||||
type va_list=pointer;
|
||||
|
||||
jboolean=byte; // unsigned 8 bits
|
||||
jbyte=shortint; // signed 8 bits
|
||||
jchar=word; // unsigned 16 bits
|
||||
jshort=smallint; // signed 16 bits
|
||||
jint=longint; // signed 32 bits
|
||||
jlong=int64; // signed 64 bits
|
||||
jfloat=single; // 32-bit IEEE 754
|
||||
jdouble=double; // 64-bit IEEE 754
|
||||
|
||||
jsize=jint; // "cardinal indices and sizes"
|
||||
|
||||
Pjboolean=^jboolean;
|
||||
Pjbyte=^jbyte;
|
||||
Pjchar=^jchar;
|
||||
Pjshort=^jshort;
|
||||
Pjint=^jint;
|
||||
Pjlong=^jlong;
|
||||
Pjfloat=^jfloat;
|
||||
Pjdouble=^jdouble;
|
||||
|
||||
Pjsize=^jsize;
|
||||
|
||||
// Reference type
|
||||
jobject=pointer;
|
||||
jclass=jobject;
|
||||
jstring=jobject;
|
||||
jarray=jobject;
|
||||
jobjectArray=jarray;
|
||||
jbooleanArray=jarray;
|
||||
jbyteArray=jarray;
|
||||
jcharArray=jarray;
|
||||
jshortArray=jarray;
|
||||
jintArray=jarray;
|
||||
jlongArray=jarray;
|
||||
jfloatArray=jarray;
|
||||
jdoubleArray=jarray;
|
||||
jthrowable=jobject;
|
||||
jweak=jobject;
|
||||
jref=jobject;
|
||||
|
||||
PPointer=^pointer;
|
||||
Pjobject=^jobject;
|
||||
Pjclass=^jclass;
|
||||
Pjstring=^jstring;
|
||||
Pjarray=^jarray;
|
||||
PjobjectArray=^jobjectArray;
|
||||
PjbooleanArray=^jbooleanArray;
|
||||
PjbyteArray=^jbyteArray;
|
||||
PjcharArray=^jcharArray;
|
||||
PjshortArray=^jshortArray;
|
||||
PjintArray=^jintArray;
|
||||
PjlongArray=^jlongArray;
|
||||
PjfloatArray=^jfloatArray;
|
||||
PjdoubleArray=^jdoubleArray;
|
||||
Pjthrowable=^jthrowable;
|
||||
Pjweak=^jweak;
|
||||
Pjref=^jref;
|
||||
|
||||
_jfieldID=record // opaque structure
|
||||
end;
|
||||
jfieldID=^_jfieldID;// field IDs
|
||||
PjfieldID=^jfieldID;
|
||||
|
||||
_jmethodID=record // opaque structure
|
||||
end;
|
||||
jmethodID=^_jmethodID;// method IDs
|
||||
PjmethodID=^jmethodID;
|
||||
|
||||
PJNIInvokeInterface=^JNIInvokeInterface;
|
||||
|
||||
Pjvalue=^jvalue;
|
||||
jvalue={$ifdef packedrecords}packed{$endif} record
|
||||
case integer of
|
||||
0:(z:jboolean);
|
||||
1:(b:jbyte);
|
||||
2:(c:jchar);
|
||||
3:(s:jshort);
|
||||
4:(i:jint);
|
||||
5:(j:jlong);
|
||||
6:(f:jfloat);
|
||||
7:(d:jdouble);
|
||||
8:(l:jobject);
|
||||
end;
|
||||
|
||||
jobjectRefType=(
|
||||
JNIInvalidRefType=0,
|
||||
JNILocalRefType=1,
|
||||
JNIGlobalRefType=2,
|
||||
JNIWeakGlobalRefType=3);
|
||||
|
||||
PJNINativeMethod=^JNINativeMethod;
|
||||
JNINativeMethod={$ifdef packedrecords}packed{$endif} record
|
||||
name:pchar;
|
||||
signature:pchar;
|
||||
fnPtr:pointer;
|
||||
end;
|
||||
|
||||
PJNINativeInterface=^JNINativeInterface;
|
||||
|
||||
_JNIEnv={$ifdef packedrecords}packed{$endif} record
|
||||
functions:PJNINativeInterface;
|
||||
end;
|
||||
|
||||
_JavaVM={$ifdef packedrecords}packed{$endif} record
|
||||
functions:PJNIInvokeInterface;
|
||||
end;
|
||||
|
||||
C_JNIEnv=^JNINativeInterface;
|
||||
JNIEnv=^JNINativeInterface;
|
||||
JavaVM=^JNIInvokeInterface;
|
||||
|
||||
PPJNIEnv=^PJNIEnv;
|
||||
PJNIEnv=^JNIEnv;
|
||||
|
||||
PPJavaVM=^PJavaVM;
|
||||
PJavaVM=^JavaVM;
|
||||
|
||||
JNINativeInterface={$ifdef packedrecords}packed{$endif} record
|
||||
reserved0:pointer;
|
||||
reserved1:pointer;
|
||||
reserved2:pointer;
|
||||
reserved3:pointer;
|
||||
|
||||
GetVersion:function(Env:PJNIEnv):JInt; jnicall;
|
||||
DefineClass:function(Env:PJNIEnv;const Name:pchar;Loader:JObject;const Buf:PJByte;Len:JSize):JClass; jnicall;
|
||||
FindClass:function(Env:PJNIEnv;const Name:pchar):JClass; jnicall;
|
||||
|
||||
// Reflection Support
|
||||
FromReflectedMethod:function(Env:PJNIEnv;Method:JObject):JMethodID; jnicall;
|
||||
FromReflectedField:function(Env:PJNIEnv;Field:JObject):JFieldID; jnicall;
|
||||
ToReflectedMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;IsStatic:JBoolean):JObject; jnicall;
|
||||
|
||||
GetSuperclass:function(Env:PJNIEnv;Sub:JClass):JClass; jnicall;
|
||||
IsAssignableFrom:function(Env:PJNIEnv;Sub:JClass;Sup:JClass):JBoolean; jnicall;
|
||||
|
||||
// Reflection Support
|
||||
ToReflectedField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;IsStatic:JBoolean):JObject; jnicall;
|
||||
|
||||
Throw:function(Env:PJNIEnv;Obj:JThrowable):JInt; jnicall;
|
||||
ThrowNew:function(Env:PJNIEnv;AClass:JClass;const Msg:pchar):JInt; jnicall;
|
||||
ExceptionOccurred:function(Env:PJNIEnv):JThrowable; jnicall;
|
||||
ExceptionDescribe:procedure(Env:PJNIEnv); jnicall;
|
||||
ExceptionClear:procedure(Env:PJNIEnv); jnicall;
|
||||
FatalError:procedure(Env:PJNIEnv;const Msg:pchar); jnicall;
|
||||
|
||||
// Local Reference Management
|
||||
PushLocalFrame:function(Env:PJNIEnv;Capacity:JInt):JInt; jnicall;
|
||||
PopLocalFrame:function(Env:PJNIEnv;Result:JObject):JObject; jnicall;
|
||||
|
||||
NewGlobalRef:function(Env:PJNIEnv;LObj:JObject):JObject; jnicall;
|
||||
DeleteGlobalRef:procedure(Env:PJNIEnv;GRef:JObject); jnicall;
|
||||
DeleteLocalRef:procedure(Env:PJNIEnv;Obj:JObject); jnicall;
|
||||
IsSameObject:function(Env:PJNIEnv;Obj1:JObject;Obj2:JObject):JBoolean; jnicall;
|
||||
|
||||
// Local Reference Management
|
||||
NewLocalRef:function(Env:PJNIEnv;Ref:JObject):JObject; jnicall;
|
||||
EnsureLocalCapacity:function(Env:PJNIEnv;Capacity:JInt):JObject; jnicall;
|
||||
|
||||
AllocObject:function(Env:PJNIEnv;AClass:JClass):JObject; jnicall;
|
||||
NewObject:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JObject; jnicall;
|
||||
NewObjectV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JObject; jnicall;
|
||||
NewObjectA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JObject; jnicall;
|
||||
|
||||
GetObjectClass:function(Env:PJNIEnv;Obj:JObject):JClass; jnicall;
|
||||
IsInstanceOf:function(Env:PJNIEnv;Obj:JObject;AClass:JClass):JBoolean; jnicall;
|
||||
|
||||
GetMethodID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JMethodID; jnicall;
|
||||
|
||||
CallObjectMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JObject; jnicall;
|
||||
CallObjectMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JObject; jnicall;
|
||||
CallObjectMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JObject; jnicall;
|
||||
|
||||
CallBooleanMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JBoolean; jnicall;
|
||||
CallBooleanMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JBoolean; jnicall;
|
||||
CallBooleanMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JBoolean; jnicall;
|
||||
|
||||
CallByteMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JByte; jnicall;
|
||||
CallByteMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JByte; jnicall;
|
||||
CallByteMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JByte; jnicall;
|
||||
|
||||
CallCharMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JChar; jnicall;
|
||||
CallCharMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JChar; jnicall;
|
||||
CallCharMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JChar; jnicall;
|
||||
|
||||
CallShortMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JShort; jnicall;
|
||||
CallShortMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JShort; jnicall;
|
||||
CallShortMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JShort; jnicall;
|
||||
|
||||
CallIntMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JInt; jnicall;
|
||||
CallIntMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JInt; jnicall;
|
||||
CallIntMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JInt; jnicall;
|
||||
|
||||
CallLongMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JLong; jnicall;
|
||||
CallLongMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JLong; jnicall;
|
||||
CallLongMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JLong; jnicall;
|
||||
|
||||
CallFloatMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JFloat; jnicall;
|
||||
CallFloatMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JFloat; jnicall;
|
||||
CallFloatMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JFloat; jnicall;
|
||||
|
||||
CallDoubleMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JDouble; jnicall;
|
||||
CallDoubleMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JDouble; jnicall;
|
||||
CallDoubleMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JDouble; jnicall;
|
||||
|
||||
CallVoidMethod:procedure(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID); jnicall;
|
||||
CallVoidMethodV:procedure(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list); jnicall;
|
||||
CallVoidMethodA:procedure(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue); jnicall;
|
||||
|
||||
CallNonvirtualObjectMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JObject; jnicall;
|
||||
CallNonvirtualObjectMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JObject; jnicall;
|
||||
CallNonvirtualObjectMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JObject; jnicall;
|
||||
|
||||
CallNonvirtualBooleanMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JBoolean; jnicall;
|
||||
CallNonvirtualBooleanMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JBoolean; jnicall;
|
||||
CallNonvirtualBooleanMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JBoolean; jnicall;
|
||||
|
||||
CallNonvirtualByteMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JByte; jnicall;
|
||||
CallNonvirtualByteMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JByte; jnicall;
|
||||
CallNonvirtualByteMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JByte; jnicall;
|
||||
|
||||
CallNonvirtualCharMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JChar; jnicall;
|
||||
CallNonvirtualCharMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JChar; jnicall;
|
||||
CallNonvirtualCharMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JChar; jnicall;
|
||||
|
||||
CallNonvirtualShortMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JShort; jnicall;
|
||||
CallNonvirtualShortMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JShort; jnicall;
|
||||
CallNonvirtualShortMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JShort; jnicall;
|
||||
|
||||
CallNonvirtualIntMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JInt; jnicall;
|
||||
CallNonvirtualIntMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JInt; jnicall;
|
||||
CallNonvirtualIntMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JInt; jnicall;
|
||||
|
||||
CallNonvirtualLongMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JLong; jnicall;
|
||||
CallNonvirtualLongMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JLong; jnicall;
|
||||
CallNonvirtualLongMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JLong; jnicall;
|
||||
|
||||
CallNonvirtualFloatMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JFloat; jnicall;
|
||||
CallNonvirtualFloatMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JFloat; jnicall;
|
||||
CallNonvirtualFloatMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JFloat; jnicall;
|
||||
|
||||
CallNonvirtualDoubleMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JDouble; jnicall;
|
||||
CallNonvirtualDoubleMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JDouble; jnicall;
|
||||
CallNonvirtualDoubleMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JDouble; jnicall;
|
||||
|
||||
CallNonvirtualVoidMethod:procedure(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID); jnicall;
|
||||
CallNonvirtualVoidMethodV:procedure(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list); jnicall;
|
||||
CallNonvirtualVoidMethodA:procedure(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue); jnicall;
|
||||
|
||||
GetFieldID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JFieldID; jnicall;
|
||||
|
||||
GetObjectField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JObject; jnicall;
|
||||
GetBooleanField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JBoolean; jnicall;
|
||||
GetByteField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JByte; jnicall;
|
||||
GetCharField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JChar; jnicall;
|
||||
GetShortField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JShort; jnicall;
|
||||
GetIntField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JInt; jnicall;
|
||||
GetLongField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JLong; jnicall;
|
||||
GetFloatField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JFloat; jnicall;
|
||||
GetDoubleField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JDouble; jnicall;
|
||||
|
||||
SetObjectField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JObject); jnicall;
|
||||
SetBooleanField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JBoolean); jnicall;
|
||||
SetByteField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JByte); jnicall;
|
||||
SetCharField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JChar); jnicall;
|
||||
SetShortField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JShort); jnicall;
|
||||
SetIntField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JInt); jnicall;
|
||||
SetLongField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JLong); jnicall;
|
||||
SetFloatField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JFloat); jnicall;
|
||||
SetDoubleField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JDouble); jnicall;
|
||||
|
||||
GetStaticMethodID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JMethodID; jnicall;
|
||||
|
||||
CallStaticObjectMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JObject; jnicall;
|
||||
CallStaticObjectMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JObject; jnicall;
|
||||
CallStaticObjectMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JObject; jnicall;
|
||||
|
||||
CallStaticBooleanMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JBoolean; jnicall;
|
||||
CallStaticBooleanMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JBoolean; jnicall;
|
||||
CallStaticBooleanMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JBoolean; jnicall;
|
||||
|
||||
CallStaticByteMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JByte; jnicall;
|
||||
CallStaticByteMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JByte; jnicall;
|
||||
CallStaticByteMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JByte; jnicall;
|
||||
|
||||
CallStaticCharMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JChar; jnicall;
|
||||
CallStaticCharMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JChar; jnicall;
|
||||
CallStaticCharMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JChar; jnicall;
|
||||
|
||||
CallStaticShortMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JShort; jnicall;
|
||||
CallStaticShortMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JShort; jnicall;
|
||||
CallStaticShortMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JShort; jnicall;
|
||||
|
||||
CallStaticIntMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JInt; jnicall;
|
||||
CallStaticIntMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JInt; jnicall;
|
||||
CallStaticIntMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JInt; jnicall;
|
||||
|
||||
CallStaticLongMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JLong; jnicall;
|
||||
CallStaticLongMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JLong; jnicall;
|
||||
CallStaticLongMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JLong; jnicall;
|
||||
|
||||
CallStaticFloatMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JFloat; jnicall;
|
||||
CallStaticFloatMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JFloat; jnicall;
|
||||
CallStaticFloatMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JFloat; jnicall;
|
||||
|
||||
CallStaticDoubleMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JDouble; jnicall;
|
||||
CallStaticDoubleMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JDouble; jnicall;
|
||||
CallStaticDoubleMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JDouble; jnicall;
|
||||
|
||||
CallStaticVoidMethod:procedure(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID); jnicall;
|
||||
CallStaticVoidMethodV:procedure(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list); jnicall;
|
||||
CallStaticVoidMethodA:procedure(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue); jnicall;
|
||||
|
||||
GetStaticFieldID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JFieldID; jnicall;
|
||||
GetStaticObjectField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JObject; jnicall;
|
||||
GetStaticBooleanField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JBoolean; jnicall;
|
||||
GetStaticByteField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JByte; jnicall;
|
||||
GetStaticCharField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JChar; jnicall;
|
||||
GetStaticShortField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JShort; jnicall;
|
||||
GetStaticIntField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JInt; jnicall;
|
||||
GetStaticLongField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JLong; jnicall;
|
||||
GetStaticFloatField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JFloat; jnicall;
|
||||
GetStaticDoubleField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JDouble; jnicall;
|
||||
|
||||
SetStaticObjectField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JObject); jnicall;
|
||||
SetStaticBooleanField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JBoolean); jnicall;
|
||||
SetStaticByteField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JByte); jnicall;
|
||||
SetStaticCharField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JChar); jnicall;
|
||||
SetStaticShortField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JShort); jnicall;
|
||||
SetStaticIntField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JInt); jnicall;
|
||||
SetStaticLongField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JLong); jnicall;
|
||||
SetStaticFloatField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JFloat); jnicall;
|
||||
SetStaticDoubleField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JDouble); jnicall;
|
||||
|
||||
NewString:function(Env:PJNIEnv;const Unicode:PJChar;Len:JSize):JString; jnicall;
|
||||
GetStringLength:function(Env:PJNIEnv;Str:JString):JSize; jnicall;
|
||||
GetStringChars:function(Env:PJNIEnv;Str:JString;IsCopy:PJBoolean):PJChar; jnicall;
|
||||
ReleaseStringChars:procedure(Env:PJNIEnv;Str:JString;const Chars:PJChar); jnicall;
|
||||
|
||||
NewStringUTF:function(Env:PJNIEnv;const UTF:pchar):JString; jnicall;
|
||||
GetStringUTFLength:function(Env:PJNIEnv;Str:JString):JSize; jnicall;
|
||||
GetStringUTFChars:function(Env:PJNIEnv;Str:JString;IsCopy:PJBoolean):pchar; jnicall;
|
||||
ReleaseStringUTFChars:procedure(Env:PJNIEnv;Str:JString;const Chars:pchar); jnicall;
|
||||
|
||||
GetArrayLength:function(Env:PJNIEnv;AArray:JArray):JSize; jnicall;
|
||||
|
||||
NewObjectArray:function(Env:PJNIEnv;Len:JSize;AClass:JClass;Init:JObject):JObjectArray; jnicall;
|
||||
GetObjectArrayElement:function(Env:PJNIEnv;AArray:JObjectArray;Index:JSize):JObject; jnicall;
|
||||
SetObjectArrayElement:procedure(Env:PJNIEnv;AArray:JObjectArray;Index:JSize;Val:JObject); jnicall;
|
||||
|
||||
NewBooleanArray:function(Env:PJNIEnv;Len:JSize):JBooleanArray; jnicall;
|
||||
NewByteArray:function(Env:PJNIEnv;Len:JSize):JByteArray; jnicall;
|
||||
NewCharArray:function(Env:PJNIEnv;Len:JSize):JCharArray; jnicall;
|
||||
NewShortArray:function(Env:PJNIEnv;Len:JSize):JShortArray; jnicall;
|
||||
NewIntArray:function(Env:PJNIEnv;Len:JSize):JIntArray; jnicall;
|
||||
NewLongArray:function(Env:PJNIEnv;Len:JSize):JLongArray; jnicall;
|
||||
NewFloatArray:function(Env:PJNIEnv;Len:JSize):JFloatArray; jnicall;
|
||||
NewDoubleArray:function(Env:PJNIEnv;Len:JSize):JDoubleArray; jnicall;
|
||||
|
||||
GetBooleanArrayElements:function(Env:PJNIEnv;AArray:JBooleanArray;IsCopy:PJBoolean):PJBoolean; jnicall;
|
||||
GetByteArrayElements:function(Env:PJNIEnv;AArray:JByteArray;IsCopy:PJBoolean):PJByte; jnicall;
|
||||
GetCharArrayElements:function(Env:PJNIEnv;AArray:JCharArray;IsCopy:PJBoolean):PJChar; jnicall;
|
||||
GetShortArrayElements:function(Env:PJNIEnv;AArray:JShortArray;IsCopy:PJBoolean):PJShort; jnicall;
|
||||
GetIntArrayElements:function(Env:PJNIEnv;AArray:JIntArray;IsCopy:PJBoolean):PJInt; jnicall;
|
||||
GetLongArrayElements:function(Env:PJNIEnv;AArray:JLongArray;IsCopy:PJBoolean):PJLong; jnicall;
|
||||
GetFloatArrayElements:function(Env:PJNIEnv;AArray:JFloatArray;IsCopy:PJBoolean):PJFloat; jnicall;
|
||||
GetDoubleArrayElements:function(Env:PJNIEnv;AArray:JDoubleArray;IsCopy:PJBoolean):PJDouble; jnicall;
|
||||
|
||||
ReleaseBooleanArrayElements:procedure(Env:PJNIEnv;AArray:JBooleanArray;Elems:PJBoolean;Mode:JInt); jnicall;
|
||||
ReleaseByteArrayElements:procedure(Env:PJNIEnv;AArray:JByteArray;Elems:PJByte;Mode:JInt); jnicall;
|
||||
ReleaseCharArrayElements:procedure(Env:PJNIEnv;AArray:JCharArray;Elems:PJChar;Mode:JInt); jnicall;
|
||||
ReleaseShortArrayElements:procedure(Env:PJNIEnv;AArray:JShortArray;Elems:PJShort;Mode:JInt); jnicall;
|
||||
ReleaseIntArrayElements:procedure(Env:PJNIEnv;AArray:JIntArray;Elems:PJInt;Mode:JInt); jnicall;
|
||||
ReleaseLongArrayElements:procedure(Env:PJNIEnv;AArray:JLongArray;Elems:PJLong;Mode:JInt); jnicall;
|
||||
ReleaseFloatArrayElements:procedure(Env:PJNIEnv;AArray:JFloatArray;Elems:PJFloat;Mode:JInt); jnicall;
|
||||
ReleaseDoubleArrayElements:procedure(Env:PJNIEnv;AArray:JDoubleArray;Elems:PJDouble;Mode:JInt); jnicall;
|
||||
|
||||
GetBooleanArrayRegion:procedure(Env:PJNIEnv;AArray:JBooleanArray;Start:JSize;Len:JSize;Buf:PJBoolean); jnicall;
|
||||
GetByteArrayRegion:procedure(Env:PJNIEnv;AArray:JByteArray;Start:JSize;Len:JSize;Buf:PJByte); jnicall;
|
||||
GetCharArrayRegion:procedure(Env:PJNIEnv;AArray:JCharArray;Start:JSize;Len:JSize;Buf:PJChar); jnicall;
|
||||
GetShortArrayRegion:procedure(Env:PJNIEnv;AArray:JShortArray;Start:JSize;Len:JSize;Buf:PJShort); jnicall;
|
||||
GetIntArrayRegion:procedure(Env:PJNIEnv;AArray:JIntArray;Start:JSize;Len:JSize;Buf:PJInt); jnicall;
|
||||
GetLongArrayRegion:procedure(Env:PJNIEnv;AArray:JLongArray;Start:JSize;Len:JSize;Buf:PJLong); jnicall;
|
||||
GetFloatArrayRegion:procedure(Env:PJNIEnv;AArray:JFloatArray;Start:JSize;Len:JSize;Buf:PJFloat); jnicall;
|
||||
GetDoubleArrayRegion:procedure(Env:PJNIEnv;AArray:JDoubleArray;Start:JSize;Len:JSize;Buf:PJDouble); jnicall;
|
||||
|
||||
SetBooleanArrayRegion:procedure(Env:PJNIEnv;AArray:JBooleanArray;Start:JSize;Len:JSize;Buf:PJBoolean); jnicall;
|
||||
SetByteArrayRegion:procedure(Env:PJNIEnv;AArray:JByteArray;Start:JSize;Len:JSize;Buf:PJByte); jnicall;
|
||||
SetCharArrayRegion:procedure(Env:PJNIEnv;AArray:JCharArray;Start:JSize;Len:JSize;Buf:PJChar); jnicall;
|
||||
SetShortArrayRegion:procedure(Env:PJNIEnv;AArray:JShortArray;Start:JSize;Len:JSize;Buf:PJShort); jnicall;
|
||||
SetIntArrayRegion:procedure(Env:PJNIEnv;AArray:JIntArray;Start:JSize;Len:JSize;Buf:PJInt); jnicall;
|
||||
SetLongArrayRegion:procedure(Env:PJNIEnv;AArray:JLongArray;Start:JSize;Len:JSize;Buf:PJLong); jnicall;
|
||||
SetFloatArrayRegion:procedure(Env:PJNIEnv;AArray:JFloatArray;Start:JSize;Len:JSize;Buf:PJFloat); jnicall;
|
||||
SetDoubleArrayRegion:procedure(Env:PJNIEnv;AArray:JDoubleArray;Start:JSize;Len:JSize;Buf:PJDouble); jnicall;
|
||||
|
||||
RegisterNatives:function(Env:PJNIEnv;AClass:JClass;const Methods:PJNINativeMethod;NMethods:JInt):JInt; jnicall;
|
||||
UnregisterNatives:function(Env:PJNIEnv;AClass:JClass):JInt; jnicall;
|
||||
|
||||
MonitorEnter:function(Env:PJNIEnv;Obj:JObject):JInt; jnicall;
|
||||
MonitorExit:function(Env:PJNIEnv;Obj:JObject):JInt; jnicall;
|
||||
|
||||
GetJavaVM:function(Env:PJNIEnv;VM:PJavaVM):JInt; jnicall;
|
||||
|
||||
// String Operations
|
||||
GetStringRegion:procedure(Env:PJNIEnv;Str:JString;Start:JSize;Len:JSize;Buf:PJChar); jnicall;
|
||||
GetStringUTFRegion:procedure(Env:PJNIEnv;Str:JString;Start:JSize;Len:JSize;Buf:pchar); jnicall;
|
||||
|
||||
// Array Operations
|
||||
GetPrimitiveArrayCritical:function(Env:PJNIEnv;AArray:JArray;IsCopy:PJBoolean):pointer; jnicall;
|
||||
ReleasePrimitiveArrayCritical:procedure(Env:PJNIEnv;AArray:JArray;CArray:pointer;Mode:JInt); jnicall;
|
||||
|
||||
// String Operations
|
||||
GetStringCritical:function(Env:PJNIEnv;Str:JString;IsCopy:PJBoolean):PJChar; jnicall;
|
||||
ReleaseStringCritical:procedure(Env:PJNIEnv;Str:JString;CString:PJChar); jnicall;
|
||||
|
||||
// Weak Global References
|
||||
NewWeakGlobalRef:function(Env:PJNIEnv;Obj:JObject):JWeak; jnicall;
|
||||
DeleteWeakGlobalRef:procedure(Env:PJNIEnv;Ref:JWeak); jnicall;
|
||||
|
||||
// Exceptions
|
||||
ExceptionCheck:function(Env:PJNIEnv):JBoolean; jnicall;
|
||||
|
||||
// J2SDK1_4
|
||||
NewDirectByteBuffer:function(Env:PJNIEnv;Address:pointer;Capacity:JLong):JObject; jnicall;
|
||||
GetDirectBufferAddress:function(Env:PJNIEnv;Buf:JObject):pointer; jnicall;
|
||||
GetDirectBufferCapacity:function(Env:PJNIEnv;Buf:JObject):JLong; jnicall;
|
||||
|
||||
// added in JNI 1.6
|
||||
GetObjectRefType:function(Env:PJNIEnv;AObject:JObject):jobjectRefType; jnicall;
|
||||
end;
|
||||
|
||||
JNIInvokeInterface={$ifdef packedrecords}packed{$endif} record
|
||||
reserved0:pointer;
|
||||
reserved1:pointer;
|
||||
reserved2:pointer;
|
||||
|
||||
DestroyJavaVM:function(PVM:PJavaVM):JInt; jnicall;
|
||||
AttachCurrentThread:function(PVM:PJavaVM;PEnv:PPJNIEnv;Args:pointer):JInt; jnicall;
|
||||
DetachCurrentThread:function(PVM:PJavaVM):JInt; jnicall;
|
||||
GetEnv:function(PVM:PJavaVM;PEnv:Ppointer;Version:JInt):JInt; jnicall;
|
||||
AttachCurrentThreadAsDaemon:function(PVM:PJavaVM;PEnv:PPJNIEnv;Args:pointer):JInt; jnicall;
|
||||
end;
|
||||
|
||||
JavaVMAttachArgs={$ifdef packedrecords}packed{$endif} record
|
||||
version:jint; // must be >= JNI_VERSION_1_2
|
||||
name:pchar; // NULL or name of thread as modified UTF-8 str
|
||||
group:jobject; // global ref of a ThreadGroup object, or NULL
|
||||
end;
|
||||
|
||||
(**
|
||||
* JNI 1.2+ initialization. (As of 1.6, the pre-1.2 structures are no
|
||||
* longer supported.)
|
||||
*)
|
||||
|
||||
PJavaVMOption=^JavaVMOption;
|
||||
JavaVMOption={$ifdef packedrecords}packed{$endif} record
|
||||
optionString:pchar;
|
||||
extraInfo:pointer;
|
||||
end;
|
||||
|
||||
JavaVMInitArgs={$ifdef packedrecords}packed{$endif} record
|
||||
version:jint; // use JNI_VERSION_1_2 or later
|
||||
nOptions:jint;
|
||||
options:PJavaVMOption;
|
||||
ignoreUnrecognized:Pjboolean;
|
||||
end;
|
||||
|
||||
(*
|
||||
* VM initialization functions.
|
||||
*
|
||||
* Note these are the only symbols exported for JNI by the VM.
|
||||
*)
|
||||
{$ifdef jniexternals}
|
||||
function JNI_GetDefaultJavaVMInitArgs(p:pointer):jint; jnicall;external 'jni' name 'JNI_GetDefaultJavaVMInitArgs';
|
||||
function JNI_CreateJavaVM(vm:PPJavaVM;AEnv:PPJNIEnv;p:pointer):jint; jnicall;external 'jni' name 'JNI_CreateJavaVM';
|
||||
function JNI_GetCreatedJavaVMs(vm:PPJavaVM;ASize:jsize;p:Pjsize):jint; jnicall;external 'jni' name 'JNI_GetCreatedJavaVMs';
|
||||
{$endif}
|
||||
|
||||
(*
|
||||
* Prototypes for functions exported by loadable shared libs. These are
|
||||
* called by JNI, not provided by JNI.
|
||||
*)
|
||||
|
||||
const curVM:PJavaVM=nil;
|
||||
curEnv:PJNIEnv=nil;
|
||||
|
||||
(*
|
||||
function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint; jnicall;
|
||||
procedure JNI_OnUnload(vm:PJavaVM;reserved:pointer); jnicall;
|
||||
*)
|
||||
|
||||
(* Helper Routines *)
|
||||
function JNI_JStringToString( PEnv : PJNIEnv; JStr : JString ) : string;
|
||||
function JNI_StringToJString( PEnv : PJNIEnv; const AString : PAnsiChar ) : JString;
|
||||
|
||||
implementation
|
||||
|
||||
function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint; jnicall;
|
||||
begin
|
||||
curVM:=vm;
|
||||
result:=JNI_VERSION_1_6;
|
||||
end;
|
||||
|
||||
procedure JNI_OnUnload(vm:PJavaVM;reserved:pointer); jnicall;
|
||||
begin
|
||||
end;
|
||||
|
||||
function JNI_JStringToString( PEnv : PJNIEnv; JStr : JString ) : string;
|
||||
var
|
||||
IsCopy: PJBoolean;
|
||||
Chars: PAnsiChar;
|
||||
begin
|
||||
if JStr = nil then
|
||||
begin
|
||||
Result := '';
|
||||
Exit;
|
||||
end;
|
||||
|
||||
Chars := PEnv^.GetStringUTFChars(PEnv, JStr, IsCopy);
|
||||
if Chars = nil then
|
||||
Result := ''
|
||||
else
|
||||
begin
|
||||
Result := string(Chars);
|
||||
PEnv^.ReleaseStringUTFChars(PEnv, JStr, Chars);
|
||||
end;
|
||||
end;
|
||||
|
||||
function JNI_StringToJString( PEnv : PJNIEnv; const AString : PAnsiChar ) : JString;
|
||||
begin
|
||||
Result := PEnv^.NewStringUTF( PEnv, PAnsiChar( AString ) );
|
||||
end;
|
||||
|
||||
end.
|
@@ -0,0 +1,87 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-linking-exception
|
||||
unit BGRABitmapLibrary;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
{$IFDEF Windows}
|
||||
{$DEFINE stdcall}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
|
||||
type
|
||||
TBGRAColor = longword;
|
||||
TMedianOption = (moNone, moLowSmooth, moMediumSmooth, moHighSmooth);
|
||||
TResampleFilter = (rfBox, rfLinear, rfHalfCosine, rfCosine, rfBicubic, rfMitchell, rfSpline, rfLanczos2, rfLanczos3, rfLanczos4, rfBestQuality);
|
||||
TRadialBlurType = (rbNormal, rbDisk, rbCorona, rbPrecise, rbFast, rbBox);
|
||||
TPointF = packed record x, y: single;end;
|
||||
|
||||
function GetHighestID(): integer; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'gethighestid';
|
||||
function rgb(red, green, blue: byte): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'rgb';
|
||||
function rgba(red, green, blue, alpha: byte): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'rgba';
|
||||
function getBlue(AColor: TBGRAColor): byte; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'getblue';
|
||||
function getGreen(AColor: TBGRAColor): byte; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'getgreen';
|
||||
function getRed(AColor: TBGRAColor): byte; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'getred';
|
||||
function getAlpha(AColor: TBGRAColor): byte; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'getalpha';
|
||||
function setBlue(AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'setblue';
|
||||
function setGreen(AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'setgreen';
|
||||
function setRed(AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'setred';
|
||||
function setAlpha(AColor: TBGRAColor; AValue: byte): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'setalpha';
|
||||
procedure Create(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'create';
|
||||
procedure CreateWithSize(id: integer; AWidth, AHeight: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'createwithsize';
|
||||
procedure Fill(id: integer; AColor: TBGRAColor); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'fill';
|
||||
procedure SetPixel(id: integer; x, y: integer; AColor: TBGRAColor); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'setpixel';
|
||||
function GetPixel(id: integer; x, y: integer): TBGRAColor; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'getpixel';
|
||||
procedure CreateFromFile(id: integer; AFilename: PWideChar); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'createfromfile';
|
||||
procedure Destroy(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'destroy';
|
||||
procedure DestroyAll; {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'destroyall';
|
||||
procedure SaveToFile(id: integer; filename: PWideChar); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'savetofile';
|
||||
{ Filters }
|
||||
procedure FilterSmartZoom3(id: integer; Option: TMedianOption); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtersmartzoom3';
|
||||
procedure FilterMedian(id: integer; Option: TMedianOption); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtermedian';
|
||||
procedure FilterSmooth(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtersmooth';
|
||||
procedure FilterSharpen(id: integer; Amount: single); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtersharpen';
|
||||
procedure FilterSharpenRect(id: integer; ABounds: TRect; Amount: single); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtersharpenrect';
|
||||
procedure FilterContour(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtercontour';
|
||||
procedure FilterPixelate(id: integer; pixelSize: integer;
|
||||
useResample: boolean; filter: TResampleFilter); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterpixelate';
|
||||
procedure FilterBlurRadial(id: integer; radius: integer; blurType: TRadialBlurType); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterblurradial';
|
||||
procedure FilterBlurRadialRect(id: integer; ABounds: TRect;
|
||||
radius: integer; blurType: TRadialBlurType); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterblurradialrect';
|
||||
procedure FilterBlurMotion(id: integer; distance: integer;
|
||||
angle: single; oriented: boolean); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterblurmotion';
|
||||
procedure FilterBlurMotionRect(id: integer; ABounds: TRect;
|
||||
distance: integer; angle: single; oriented: boolean); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterblurmotionrect';
|
||||
procedure FilterCustomBlur(id: integer; mask: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtercustomblur';
|
||||
procedure FilterCustomBlurRect(id: integer; ABounds: TRect; mask: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtercustomblurrect';
|
||||
procedure FilterEmboss(id: integer; angle: single); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filteremboss';
|
||||
procedure FilterEmbossRect(id: integer; angle: single; ABounds: TRect); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterembossrect';
|
||||
procedure FilterEmbossHighlight(id: integer; FillSelection: boolean); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterembosshighlight';
|
||||
procedure FilterEmbossHighlightBorder(id: integer; FillSelection: boolean;
|
||||
BorderColor: TBGRAColor); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterembosshighlightborder';
|
||||
procedure FilterEmbossHighlightBorderAndOffset(id: integer;
|
||||
FillSelection: boolean; BorderColor: TBGRAColor; Offset: TPoint); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterembosshighlightborderandoffset';
|
||||
procedure FilterGrayscale(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtergrayscale';
|
||||
procedure FilterGrayscaleRect(id: integer; ABounds: TRect); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtergrayscalerect';
|
||||
procedure FilterNormalize(id: integer; eachChannel: boolean); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filternormalize';
|
||||
procedure FilterNormalizeRect(id: integer; ABounds: TRect; eachChannel: boolean); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filternormalizerect';
|
||||
procedure FilterRotate(id: integer; origin: TPointF; angle: single;
|
||||
correctBlur: boolean); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterrotate';
|
||||
procedure FilterSphere(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtersphere';
|
||||
procedure FilterTwirl(id: integer; ACenter: TPoint; ARadius: single;
|
||||
ATurn: single; AExponent: single); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtertwirl';
|
||||
procedure FilterTwirlRect(id: integer; ABounds: TRect; ACenter: TPoint;
|
||||
ARadius: single; ATurn: single; AExponent: single); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtertwirlrect';
|
||||
procedure FilterCylinder(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filtercylinder';
|
||||
procedure FilterPlane(id: integer); {$IFDEF stdcall}stdcall;{$ELSE}cdecl;{$ENDIF} external 'bgrabitmap' Name 'filterplane';
|
||||
|
||||
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="9"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="test_library"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
</General>
|
||||
<i18n>
|
||||
<EnableI18N LFM="False"/>
|
||||
</i18n>
|
||||
<VersionInfo>
|
||||
<StringTable ProductVersion=""/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="2">
|
||||
<Unit0>
|
||||
<Filename Value="test_library.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="utest.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="utest"/>
|
||||
</Unit1>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="test_library"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
@@ -0,0 +1,20 @@
|
||||
program test_library;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||
cthreads,
|
||||
{$ENDIF}{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, utest;
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
RequireDerivedFormResource := True;
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
||||
|
19
bgracontrols/bgra_pascalscript_library/pascal/utest.lfm
Normal file
19
bgracontrols/bgra_pascalscript_library/pascal/utest.lfm
Normal file
@@ -0,0 +1,19 @@
|
||||
object Form1: TForm1
|
||||
Left = 383
|
||||
Height = 240
|
||||
Top = 173
|
||||
Width = 320
|
||||
Caption = 'Form1'
|
||||
ClientHeight = 240
|
||||
ClientWidth = 320
|
||||
LCLVersion = '1.4.0.4'
|
||||
object Button1: TButton
|
||||
Left = 8
|
||||
Height = 25
|
||||
Top = 8
|
||||
Width = 75
|
||||
Caption = 'Test'
|
||||
OnClick = Button1Click
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
47
bgracontrols/bgra_pascalscript_library/pascal/utest.pas
Normal file
47
bgracontrols/bgra_pascalscript_library/pascal/utest.pas
Normal file
@@ -0,0 +1,47 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-linking-exception
|
||||
unit utest;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
||||
BGRABitmapLibrary;
|
||||
|
||||
type
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
Button1: TButton;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
procedure TForm1.Button1Click(Sender: TObject);
|
||||
begin
|
||||
BGRABitmapLibrary.Create(0);
|
||||
BGRABitmapLibrary.CreateWithSize(1,100,100);
|
||||
ShowMessage(IntToStr(BGRABitmapLibrary.GetHighestID()));
|
||||
BGRABitmapLibrary.Fill(1, BGRABitmapLibrary.rgb(0, 255, 0));
|
||||
BGRABitmapLibrary.FilterSmartZoom3(0, moNone);
|
||||
BGRABitmapLibrary.SaveToFile(1, 'test.png');
|
||||
BGRABitmapLibrary.Destroy(1);
|
||||
BGRABitmapLibrary.Destroy(0);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Reference in New Issue
Block a user