/VCL_DELPHIX_D6/DelphiX200.otares |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DIB.pas |
---|
28,7 → 28,9 |
uses |
Windows, SysUtils, Classes, Graphics, Controls, |
{$IFDEF VER17UP} Types, UITypes,{$ENDIF} |
{$IFDEF VER7UP} Types, {$ENDIF} |
{$IFDEF VER9UP} GraphUtil, {$ENDIF} |
{$IFDEF VER17UP} UITypes,{$ENDIF} |
Math; |
type |
39,6 → 41,13 |
TPaletteEntries = array[0..255] of TPaletteEntry; |
PBGRA = ^TBGRA; |
TBGRA = packed record |
B, G, R, A: Byte; |
end; |
TLinesA = array[0..0] of TBGRA; |
PLinesA = ^TLinesA; |
PBGR = ^TBGR; |
TBGR = packed record |
B, G, R: Byte; |
55,16 → 64,16 |
{ End of type's } |
PArrayBGR = ^TArrayBGR; |
TArrayBGR = array[0..10000] of TBGR; |
TArrayBGR = array[0..0] of TBGR; |
PArrayByte = ^TArrayByte; |
TArrayByte = array[0..10000] of Byte; |
TArrayByte = array[0..0] of Byte; |
PArrayWord = ^TArrayWord; |
TArrayWord = array[0..10000] of Word; |
TArrayWord = array[0..0] of Word; |
PArrayDWord = ^TArrayDWord; |
TArrayDWord = array[0..10000] of DWord; |
TArrayDWord = array[0..0] of DWord; |
{ TDIBPixelFormat } |
214,6 → 223,10 |
procedure SetPalette(Value: HPalette); override; |
procedure SetWidth(Value: Integer); override; |
procedure WriteData(Stream: TStream); override; |
{$IFDEF VER16UP} |
function GetSupportsPartialTransparency: Boolean; override; |
{$ENDIF} |
function GetTransparent: Boolean; override; |
public |
ColorTable: TRGBQuads; |
PixelFormat: TDIBPixelFormat; |
239,7 → 252,7 |
procedure Blur(ABitCount: Integer; Radius: Integer); |
procedure Greyscale(ABitCount: Integer); |
procedure Mirror(MirrorX, MirrorY: Boolean); |
procedure Negative; |
procedure Negative; {$IFDEF VER9UP}inline;{$ENDIF} |
{ Added New Special Effect } |
procedure Spray(Amount: Integer); |
306,7 → 319,7 |
procedure DoSmoothRotate(Src: TDIB; cx, cy: Integer; Angle: Extended); |
procedure DoColorize(ForeColor, BackColor: TColor); |
{Simple explosion spoke effect} |
procedure DoNovaEffect(sr, sg, sb, cx, cy, radius, |
procedure DoNovaEffect(const sr, sg, sb, cx, cy, radius, |
nspokes, randomhue, randomspok, randgauss: Integer; onProgress: TProgressEvent); |
{Simple Mandelbrot-set drawing} |
379,11 → 392,11 |
// |
// effect for special purpose |
// |
procedure FadeOut(DIB2: TDIB; Step: Byte); |
procedure FadeOut(DIB2: TDIB; Step: Byte); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure DoZoom(DIB2: TDIB; ZoomRatio: Real); |
procedure DoBlur(DIB2: TDIB); |
procedure FadeIn(DIB2: TDIB; Step: Byte); |
procedure FillDIB8(Color: Byte); |
procedure FadeIn(DIB2: TDIB; Step: Byte); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure FillDIB8(Color: Byte); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure DoRotate(DIB1: TDIB; cX, cY, Angle: Integer); |
procedure Distort(DIB1: TDIB; dt: TDistortType; cX, cY, Angle: Integer; Factor: Real); |
function Ink(DIB: TDIB; const SprayInit: Boolean; const AmountSpray: Integer): Boolean; |
565,11 → 578,46 |
procedure MakeDib(out DIB: TDIB; const iWidth, iHeight, iBitCount: Integer; iFillColor: TColor{$IFDEF VER4UP} = clBlack{$ENDIF}); {$IFDEF VER4UP}overload; {$ENDIF} |
procedure{$IFDEF VER4UP}MakeDib{$ELSE}MakeDIB2{$ENDIF}(out DIB: TDIB; iBitmap: TBitmap); {$IFDEF VER4UP}overload; {$ENDIF} |
procedure MakeDIB32MaskByColor(var D: TDIB; const MaskColor: TColor{$IFDEF VER4UP} = clWhite{$ENDIF}); |
function BGR(B, G, R: Byte): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
implementation |
uses DXConsts, {$IFDEF PNG_GRAPHICS}pngimage,{$ENDIF} jpeg; |
function BGR(B, G, R: Byte): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := (B shl 16) or (G shl 8) or R; |
end; |
procedure MakeDIB32MaskByColor(var D: TDIB; const MaskColor: TColor{$IFDEF VER4UP} = clWhite{$ENDIF}); |
type |
PRGBA = ^TRGBA; |
TRGBA = array[0..0] of Windows.TRGBQuad; |
var |
p: PRGBA; |
y: Integer; |
x: Integer; |
B: TDIB; |
begin |
MakeDib(B, D.Width, D.Height, 32, $FFFFFF); |
B.RGBChannel := D.RGBChannel; |
if B.BitCount = 32 then |
for Y := 0 to B.Height - 1 do |
begin |
p := B.ScanLine[Y]; |
for X := 0 to B.Width - 1 do |
begin |
if (p[X].rgbBlue = GetBValue(MaskColor)) and (p[X].rgbGreen = GetGValue(MaskColor)) and (p[X].rgbRed = GetRValue(MaskColor)) then |
p[X].rgbReserved := 0 |
else |
p[X].rgbReserved := $FF |
end |
end; |
d.Assign(B); |
end; |
function GetScale(SourceWidth, SourceHeight, TargetWidth, TargetHeight: Integer): Single; |
var |
XScale, YScale: Single; |
985,11 → 1033,13 |
biCompression := BI_BITFIELDS |
else |
begin |
biCompression := 0; //none |
if (FBitCount = 4) and (Compressed) then |
biCompression := BI_RLE4 |
else if (FBitCount = 8) and (Compressed) then |
biCompression := BI_RLE8 |
else |
if FBitCount = 24 then |
biCompression := BI_RGB; |
end; |
biSizeImage := FSize; |
1712,8 → 1762,10 |
try |
D := TDIB(FFreeList[0]); |
FFreeList.Remove(D); |
if (D <> nil) and (D.Height > 0) and (D.Width > 0) then //is really pointed to image? |
D.Free; |
except |
// it is silent exception, but it can through outer (abstract) exception |
end; |
FFreeList.Free; |
2133,7 → 2185,7 |
X, Y: Integer; |
begin |
oDIB := nil; |
if not HasAlphaChannel then exit; |
if not HasAlphaChannel then Exit; |
oDIB := TDIB.Create; |
oDIB.SetSize(Width, Height, 8); |
for Y := 0 to Height - 1 do |
2233,6 → 2285,13 |
Result := Pointer(Integer(FTopPBits) + Y * FNextLine); |
end; |
{$IFDEF VER16UP} |
function TDIB.GetSupportsPartialTransparency: Boolean; |
begin |
Result := (FBitCount = 32) and HasAlphaChannel; |
end; |
{$ENDIF} |
function TDIB.GetTopPBits: Pointer; |
begin |
Changing(True); |
2249,6 → 2308,11 |
Result := FTopPBits; |
end; |
function TDIB.GetTransparent: Boolean; |
begin |
Result := (FBitCount = 32) and HasAlphaChannel; |
end; |
function TDIB.GetWidth: Integer; |
begin |
Result := FWidth; |
2483,7 → 2547,9 |
bfSize := bfOffBits + FImage.FBitmapInfo^.bmiHeader.biSizeImage; |
bfReserved1 := 0; |
bfReserved2 := 0; |
if (FBitCount = 32) and (FImage.FBitmapInfo^.bmiHeader.biCompression <> 0) then FImage.FBitmapInfo^.bmiHeader.biCompression := 0; //corrext RGB error to RGBA |
end; |
Stream.WriteBuffer(BF, SizeOf(TBitmapFileHeader)); |
WriteData(Stream); |
3545,7 → 3611,7 |
EndProgress; |
end; |
end; |
(* |
procedure TDIB.Negative; |
var |
i, i2: Integer; |
3603,7 → 3669,37 |
end; |
end; |
end; |
*) |
procedure TDIB.Negative; |
var |
i: Integer; |
P: Pointer; |
i2: Integer; |
begin |
if Empty then Exit; |
if BitCount <= 8 then |
begin |
for i := 0 to 255 do |
with ColorTable[i] do |
begin |
rgbRed := 255 - rgbRed; |
rgbGreen := 255 - rgbGreen; |
rgbBlue := 255 - rgbBlue; |
end; |
UpdatePalette; |
end |
else |
begin |
P := PBits; |
i2 := Size; |
for i := 0 to i2-1 do |
begin |
PByteArray(P)^[i] := not PByteArray(P)^[i]; |
end; |
end; |
end; |
procedure TDIB.Greyscale(ABitCount: Integer); |
var |
YTblR, YTblG, YTblB: array[0..255] of Byte; |
4763,7 → 4859,7 |
weight_x, weight_y: array[0..1] of Double; |
total_red, total_green, total_blue: Double; |
sli, slo: PLines; |
D: Pointer; |
//D: Pointer; |
begin |
Result := True; |
case BitCount of |
5282,9 → 5378,16 |
//-------------------------------------------------------------------------------------------------- |
function TDIB.GetAlphaChannel: TDIB; |
var |
I: Integer; |
begin |
RetAlphaChannel(Result); |
if Result = nil then Exit; |
if FFreeList.Count > 0 then |
for I := 0 to FFreeList.Count - 1 do |
if FFreeList[I] = Result then Exit; |
FFreeList.Add(Result); |
end; |
5295,10 → 5398,26 |
end; |
procedure TDIB.Fill(aColor: TColor); |
var |
p: PRGBA; |
y: Integer; |
x: Integer; |
begin |
Canvas.Brush.Color := aColor; |
Canvas.FillRect(ClientRect); |
if Self.BitCount = 32 then |
begin |
//fill alpha chanell too with $FF |
for Y := 0 to Self.Height - 1 do |
begin |
p := Self.ScanLine[Y]; |
for X := 0 to Self.Width - 1 do |
begin |
p[X].rgbReserved := $FF |
end; |
end; |
end; |
end; |
function TDIB.GetClientRect: TRect; |
begin |
5527,33 → 5646,70 |
procedure TDIB.CreateDIBFromBitmap(const Bitmap: TBitmap); |
var |
pf: Integer; |
X, Y: Integer; |
P: PLinesA; |
q: PRGBA; |
begin |
if Bitmap.PixelFormat = pf32bit then pf := 32 else pf := 24; |
SetSize(Bitmap.Width, Bitmap.Height, pf); {always >=24} |
Canvas.Brush.Color := clWhite; |
Canvas.FillRect(Bounds(0, 0, Width, Height)); |
Canvas.Draw(0, 0, Bitmap); |
//Note. Transparent background from bitmap is not drawed when is alphalayer active |
if (pf = 32) {and (Bitmap.AlphaFormat <> afIgnored)} then |
begin |
for y := 0 to Bitmap.Height-1 do |
begin |
p := Bitmap.ScanLine[y]; //BGRA |
q := Self.ScanLine[y]; //ARGB |
for x := 0 to Width-1 do //copy only alphachannel |
q[x].rgbReserved := P[x].A; |
end; |
end; |
end; |
function TDIB.CreateBitmapFromDIB: TBitmap; |
//var |
// X, Y: Integer; |
var |
ach: Boolean; |
X, Y: Integer; |
P: PLinesA; |
q: PRGBA; |
begin |
ach := False; |
Result := TBitmap.Create; |
if BitCount = 32 then |
Result.PixelFormat := pf32bit |
else if BitCount = 24 then |
Result.PixelFormat := pf24bit |
else if BitCount = 16 then |
Result.PixelFormat := pf16bit |
else if BitCount = 8 then |
Result.PixelFormat := pf8bit |
else Result.PixelFormat := pf24bit; |
case BitCount of |
32: |
begin |
Result.PixelFormat := pf32bit; |
ach := HasAlphaChannel; |
end; |
24: Result.PixelFormat := pf24bit; |
15: Result.PixelFormat := pf16bit; |
8: Result.PixelFormat := pf8bit; |
else |
Result.PixelFormat := pf24bit; |
end; |
Result.Width := Width; |
Result.Height := Height; |
Result.Canvas.Draw(0, 0, Self); |
// for Y := 0 to Height - 1 do |
// for X := 0 to Width - 1 do |
// Result.Canvas.Pixels[X, Y] := Canvas.Pixels[X, Y]; |
if (BitCount = 32) then |
begin |
if ach then |
begin |
{$IFDEF VER16UP} |
Result.AlphaFormat := afDefined; |
{$ENDIF} |
for y := 0 to Height-1 do |
begin |
p := Result.ScanLine[y]; //BGRA |
q := Self.ScanLine[y]; //ARGB |
for x := 0 to Width-1 do //copy only alphachannel |
P[x].A := q[x].rgbReserved; |
end; |
end; |
end; |
end; |
procedure TDIB.DrawTo(SrcDIB: TDIB; X, Y, Width, Height, |
SourceX, SourceY: Integer); |
6504,7 → 6660,7 |
procedure TDIB.DoSmoothRotate(Src: TDIB; cx, cy: Integer; Angle: Extended); |
var |
Top, Bottom, Left, Right, eww, nsw, fx, fy, wx, wy: Extended; |
Top, Bottom, eww, nsw, fx, fy: Extended; |
cAngle, sAngle: Double; |
xDiff, yDiff, ifx, ify, px, py, ix, iy, x, y: Integer; |
nw, ne, sw, se: TBGR; |
7726,7 → 7882,7 |
// ----------------------------------------------------------------------------- |
// Hermite filter |
function HermiteFilter(Value: Single): Single; |
function HermiteFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
// f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 |
if (Value < 0.0) then |
7741,7 → 7897,7 |
// a.k.a. "Nearest Neighbour" filter |
// anme: I have not been able to get acceptable |
// results with this filter for subsampling. |
function BoxFilter(Value: Single): Single; |
function BoxFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value > -0.5) and (Value <= 0.5) then |
Result := 1.0 |
7751,7 → 7907,7 |
// Triangle filter |
// a.k.a. "Linear" or "Bilinear" filter |
function TriangleFilter(Value: Single): Single; |
function TriangleFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value < 0.0) then |
Value := -Value; |
7762,7 → 7918,7 |
end; |
// Bell filter |
function BellFilter(Value: Single): Single; |
function BellFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value < 0.0) then |
Value := -Value; |
7779,7 → 7935,7 |
end; |
// B-spline filter |
function SplineFilter(Value: Single): Single; |
function SplineFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
var |
tt: single; |
begin |
7802,7 → 7958,7 |
// Lanczos3 filter |
function Lanczos3Filter(Value: Single): Single; |
function SinC(Value: Single): Single; |
function SinC(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value <> 0.0) then |
begin |
7821,7 → 7977,7 |
Result := 0.0; |
end; |
function MitchellFilter(Value: Single): Single; |
function MitchellFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
const |
B = (1.0 / 3.0); |
C = (1.0 / 3.0); |
7858,7 → 8014,7 |
// ----------------------------------------------------------------------------- |
type |
// Contributor for a pixel |
TContributor = record |
TContributor = packed record |
pixel: Integer; // Source pixel |
weight: single; // Pixel weight |
end; |
7867,7 → 8023,7 |
PContributorList = ^TContributorList; |
// List of source pixels contributing to a destination pixel |
TCList = record |
TCList = packed record |
n: Integer; |
p: PContributorList; |
end; |
7903,7 → 8059,7 |
{$IFDEF USE_SCANLINE} |
SourceLine, |
DestLine: PRGBList; |
SourcePixel, |
//SourcePixel, |
DestPixel: PColorRGB; |
Delta, |
DestDelta: Integer; |
7913,7 → 8069,7 |
DstWidth, |
DstHeight: Integer; |
function Color2RGB(Color: TColor): TColorRGB; |
function Color2RGB(Color: TColor): TColorRGB; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result.r := Color and $000000FF; |
Result.g := (Color and $0000FF00) shr 8; |
7920,7 → 8076,7 |
Result.b := (Color and $00FF0000) shr 16; |
end; |
function RGB2Color(Color: TColorRGB): TColor; |
function RGB2Color(Color: TColorRGB): TColor; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := Color.r or (Color.g shl 8) or (Color.b shl 16); |
end; |
8228,7 → 8384,8 |
for j := 0 to contrib^[i].n - 1 do |
begin |
{$IFDEF USE_SCANLINE} |
color := PColorRGB(Integer(SourceLine) + contrib^[i].p^[j].pixel * Delta)^; |
//color := PColorRGB(PByte(SourceLine) + contrib^[i].p^[j].pixel * Delta)^; |
Move(Pointer(Integer(SourceLine) + contrib^[i].p^[j].pixel * Delta)^, Color, SizeOf(Color)); |
{$ELSE} |
color := Color2RGB(Work.Canvas.Pixels[k, contrib^[i].p^[j].pixel]); |
{$ENDIF} |
8259,7 → 8416,11 |
color.b := round(rgb.b); |
{$IFDEF USE_SCANLINE} |
DestPixel^ := color; |
{$IFDEF WIN64} |
inc(PByte(DestPixel), DestDelta); |
{$ELSE} |
inc(Integer(DestPixel), DestDelta); |
{$ENDIF} |
{$ELSE} |
Dst.Canvas.Pixels[k, i] := RGB2Color(color); |
{$ENDIF} |
8400,7 → 8561,7 |
end; |
{ procedure for special purpose } |
(* |
procedure TDIB.FadeOut(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
8435,6 → 8596,22 |
POP ESI |
end; |
end; |
*) |
procedure TDIB.FadeOut(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
W, H, i: Integer; |
begin |
P1 := ScanLine[DIB2.Height - 1]; |
P2 := DIB2.ScanLine[DIB2.Height - 1]; |
W := WidthBytes; |
H := Height; |
for i := 0 to W * H - 1 do |
begin |
if P1[i] < Step then P2[i] := P1[i] |
else P2[i] := Step; |
end; |
end; |
procedure TDIB.DoZoom(DIB2: TDIB; ZoomRatio: Real); |
var |
8501,7 → 8678,7 |
end; |
end; |
end; |
(* |
procedure TDIB.FadeIn(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
8536,7 → 8713,24 |
POP ESI |
end; |
end; |
*) |
procedure TDIB.FadeIn(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
W, H, i: Integer; |
begin |
P1 := ScanLine[DIB2.Height - 1]; |
P2 := DIB2.ScanLine[DIB2.Height - 1]; |
W := WidthBytes; |
H := Height; |
for i := 0 to W * H - 1 do |
begin |
if P1[i] > Step then P2[i] := P1[i] |
else P2[i] := Step; |
end; |
end; |
(* |
procedure TDIB.FillDIB8(Color: Byte); |
var |
P: PByteArray; |
8561,7 → 8755,21 |
POP ESI |
end; |
end; |
*) |
procedure TDIB.FillDIB8(Color: Byte); |
var |
P: PByteArray; |
W, H, I: Integer; |
begin |
P := ScanLine[Height - 1]; |
W := WidthBytes; |
H := Height; |
for I := 0 to W * H - 1 do |
P[I] := Color; |
end; |
procedure TDIB.DoRotate(DIB1: TDIB; cX, cY, Angle: Integer); |
type |
T3Byte = array[0..2] of Byte; |
9186,7 → 9394,7 |
end; |
end; |
end; |
(* |
function TDIB.GetColorBetween(StartColor, EndColor: TColor; Pointvalue, |
FromPoint, ToPoint: Extended): TColor; |
var F: Extended; r1, r2, r3, g1, g2, g3, b1, b2, b3: Byte; |
9251,7 → 9459,56 |
mov @result, EAX |
end; |
end; |
*) |
function TDIB.GetColorBetween(StartColor, EndColor: TColor; Pointvalue, FromPoint, ToPoint: Extended): TColor; |
var |
F: Extended; |
r1, g1, b1, r2, g2, b2, r3, g3, b3: Byte; |
function CalcColorBytes(const factor: Extended; const fb1, fb2: Byte): Byte; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := fb1; |
if fb1 < fb2 then Result := fb1 + Trunc(factor * (fb2 - fb1)); |
if fb1 > fb2 then Result := fb1 - Trunc(factor * (fb1 - fb2)); |
end; |
procedure GetRGB(const AColor: TColor; var R, G, B: Byte); {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
R := AColor and $FF; |
G := (AColor shr 8) and $FF; |
B := (AColor shr 16) and $FF; |
end; |
begin |
if Pointvalue <= FromPoint then |
begin |
Result := StartColor; |
Exit; |
end; |
if Pointvalue >= ToPoint then |
begin |
Result := EndColor; |
Exit; |
end; |
F := (Pointvalue - FromPoint) / (ToPoint - FromPoint); |
GetRGB(StartColor, r1, g1, b1); |
// r1 := StartColor and $FF; |
// g1 := (StartColor shr 8) and $FF; |
// b1 := (StartColor shr 16) and $FF; |
GetRGB(StartColor, r2, g2, b2); |
// r2 := EndColor and $FF; |
// g2 := (EndColor shr 8) and $FF; |
// b2 := (EndColor shr 16) and $FF; |
r3 := CalcColorBytes(F, r1, r2); |
g3 := CalcColorBytes(F, g1, g2); |
b3 := CalcColorBytes(F, b1, b2); |
Result := (b3 shl 16) or (g3 shl 8) or r3; |
end; |
procedure TDIB.ColoredLine(const iStart, iEnd: TPoint; iColorStyle: TColorLineStyle; |
iGradientFrom, iGradientTo: TColor; iPixelGeometry: TColorLinePixelGeometry; iRadius: Word); |
var |
9459,7 → 9716,7 |
end |
end {Line}; |
procedure TDIB.DoNovaEffect(sr, sg, sb, cx, cy, radius, |
procedure TDIB.DoNovaEffect(const sr, sg, sb, cx, cy, radius, |
nspokes, randomhue, randomspok, randgauss: Integer; onProgress: TProgressEvent); |
// Copyright (c) 2000 by Keith Murray (kmurray@hotfreeware.com) |
// All rights reserved. |
9468,9 → 9725,9 |
PByteArray = ^TByteArray; |
TByteArray = array[0..32767] of Byte; |
PDoubleArray = ^TDoubleArray; |
TDoubleArray = array[0..32767] of Double; |
TDoubleArray = array[0..0] of Double; |
PIntegerArray = ^TIntegerArray; |
TIntegerArray = array[0..32767] of Integer; |
TIntegerArray = array[0..0] of Integer; |
type |
TProgressEvent = procedure(progress: Integer; message: string; |
var cancel: Boolean) of object; |
9478,7 → 9735,7 |
M_PI = 3.14159265358979323846; |
RAND_MAX = 2147483647; |
function Gauss: double; |
function Gauss(const randgauss: Integer): double; {$IFDEF VER9UP}inline;{$ENDIF} |
const magnitude = 6; |
var |
sum: double; |
9490,7 → 9747,7 |
result := sum / magnitude; |
end; |
function Clamp(i, l, h: double): double; {$IFDEF VER9UP}inline;{$ENDIF} |
function Clamp(const i, l, h: double): double; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if i < l then |
result := l |
9501,7 → 9758,7 |
result := i; |
end; |
function IClamp(i, l, h: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function IClamp(const i, l, h: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if i < l then |
result := l |
9509,8 → 9766,8 |
result := h |
else result := i; |
end; |
procedure rgb_to_hsl(r, g, b: Double; var h, s, l: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
{$IFNDEF VER9UP} |
procedure rgb_to_hsl(const r, g, b: Double; var h, s, l: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
{$IFNDEF VER4UP} |
function Max(a, b: Double): Double; |
begin |
9622,7 → 9879,27 |
end; |
end; |
end; |
{$ELSE} |
procedure rgb_to_hsl(const r, g, b: Double; var h, s, l: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
var |
h0, s0, l0: Word; |
begin //procedure ColorRGBToHLS(clrRGB: TColorRef; var Hue, Luminance, Saturation: Word); |
GraphUtil.ColorRGBToHLS(RGB(Trunc(r),Trunc(g),Trunc(b)), h0, s0, l0); |
h := h0; |
s := s0; |
l := l0; |
end; |
procedure hsl_to_rgb(h, sl, l: Double; var r, g, b: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
var X: TColorRef; |
begin //function ColorHLSToRGB(Hue, Luminance, Saturation: Word): TColorRef; |
X := GraphUtil.ColorHLSToRGB(Trunc(h), Trunc(l), Trunc(sl)); |
r := GetRValue(X); |
g := GetGValue(X); |
b := GetBValue(X); |
end; |
{$ENDIF} |
var |
src_row, dest_row: PByte; |
src, dest: PByteArray; |
9629,8 → 9906,8 |
color, colors: array[0..3] of Integer; |
SpokeColor: PIntegerArray; |
spoke: PDoubleArray; |
x1, y1, x2, y2, row, col, x, y, alpha, has_alpha, bpp, progress, max_progress, xc, yc, i, j: Integer; |
u, v, l, l0, w, w1, c, nova_alpha, src_alpha, new_alpha, compl_ratio, ratio, r, g, b, h, s, lu, SpokeCol: Double; |
x2, row, col, x, y, alpha, has_alpha, bpp, xc, yc, i, j: Integer; |
u, v, l, l0, w, w1, c, nova_alpha, new_alpha, compl_ratio, ratio, r, g, b, h, s, lu, SpokeCol: Double; |
dstDIB: TDIB; |
begin |
colors[0] := sr; |
9641,15 → 9918,16 |
GetMem(spoke, NSpokes * sizeof(Double)); |
GetMem(spokecolor, NSpokes * sizeof(Integer) * 3); |
dstDIB := TDIB.Create; |
try |
dstDIB.Assign(Self); |
dstDIB.Canvas.Brush.Color := clBlack; |
dstDIB.Canvas.FillRect(dstDIB.Canvas.ClipRect); |
try |
// R G B |
rgb_to_hsl(colors[0] / 255.0, colors[1] / 255.0, colors[2] / 255.0, h, s, lu); |
for i := 0 to NSpokes - 1 do |
begin |
spoke[i] := gauss; |
spoke[i] := gauss(randgauss); |
h := h + randomhue / 360.0 * ({Random(RAND_MAX)}RandomSpok / RAND_MAX - 0.5); |
if h < 0 then |
h := h + 1.0 |
9668,16 → 9946,18 |
has_alpha := 0; |
alpha := bpp; |
y := 0; |
for row := 0 to Self.Height - 1 do begin |
for row := 0 to Self.Height - 1 do |
begin |
src_row := Self.ScanLine[row]; |
dest_row := dstDIB.ScanLine[row]; |
src := Pointer(src_row); |
dest := Pointer(dest_row); |
x := 0; |
for col := 0 to Self.Width - 1 do begin |
for col := 0 to Self.Width - 1 do |
begin |
u := (x - xc) / radius; |
v := (y - yc) / radius; |
l := sqrt((u * u) + (v * v)); |
l := sqrt(sqr(u) + sqr(v)); |
c := (arctan2(u, v) / (2 * M_PI) + 0.51) * NSpokes; |
i := floor(c); |
c := c - i; |
9698,14 → 9978,19 |
color[j] := Trunc(color[j] + 255 * Clamp(w1 * w, 0.0, 1.0)); |
dest[j] := IClamp(color[j], 0, 255); |
end; |
inc(Integer(src), bpp); |
inc(Integer(dest), bpp); |
inc(x); |
{$IFDEF WIN64} |
Inc(PByte(src), bpp); |
Inc(PBYTE(dest), bpp); |
{$ELSE} |
Inc(Integer(src), bpp); |
Inc(Integer(dest), bpp); |
{$ENDIF} |
Inc(x); |
end; |
inc(y); |
Inc(y); |
end; |
Self.Assign(dstDIB); |
finally |
Self.Assign(dstDIB); |
dstDIB.Free; |
FreeMem(Spoke); |
FreeMem(SpokeColor); |
9766,10 → 10051,10 |
procedure TDIB.SephiaEffect(Depth: Integer{$IFDEF VER4UP} = 20{$ENDIF}); |
{Note: when depth parameter set to 0 will produce black and white picture only} |
var |
color, color2: longint; |
color, color2: LongInt; |
r, g, b, rr, gg: byte; |
h, w: Integer; |
p0: pbytearray; |
p0: PByteArray; |
x, y: Integer; |
begin |
if Self.BitCount = 24 then |
/VCL_DELPHIX_D6/DXDIBEffectEdit.dfm |
---|
407,7 → 407,6 |
Top = 24 |
Width = 150 |
Height = 9 |
Min = 0 |
Max = 360 |
TabOrder = 10 |
OnMouseMove = RaHUEMouseMove |
418,7 → 417,6 |
Width = 150 |
Height = 9 |
Min = 1 |
Max = 100 |
Position = 1 |
TabOrder = 11 |
OnMouseMove = CentrMouseMove |
/VCL_DELPHIX_D6/DXDraws.pas |
---|
4578,6 → 4578,17 |
{additional pixel routines like turbopixels} |
{ |
procedure TDirectDrawSurface.PutPixel8(x, y, color: Integer); |
var |
SurfacePtr: PByte; |
PixelOffset: Integer; |
begin |
SurfacePtr := FLockSurfaceDesc.lpSurface; |
PixelOffset := x + y * FLockSurfaceDesc.dwWidth; |
SurfacePtr[PixelOffset] := color and $FF; // set pixel (lo byte of color) |
end;} |
procedure TDirectDrawSurface.PutPixel8(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
4593,6 → 4604,17 |
//ret // return |
end; |
{ |
procedure TDirectDrawSurface.PutPixel16(x, y, color: Integer); |
var |
pPixel: PWord; |
begin |
pPixel := PWord(Integer(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface) + |
x * 2 + y * TDirectDrawSurface(Self).FLockSurfaceDesc.lPitch); |
pPixel^ := color; |
end; |
} |
procedure TDirectDrawSurface.PutPixel16(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
4609,6 → 4631,24 |
//ret |
end; |
{ |
procedure TDirectDrawSurface.PutPixel24(x, y, color: Integer); |
var |
pPixel: PByte; |
dwPitch: DWORD; |
dwColor: DWORD; |
begin |
pPixel := PByte(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface); |
Inc(pPixel, x * 3); |
dwPitch := TDirectDrawSurface(Self).FLockSurfaceDesc.lPitch; |
Inc(pPixel, y * dwPitch); |
dwColor := color and $FFFFFF; |
pPixel[0] := Byte(dwColor); |
pPixel[1] := Byte(dwColor shr 8); |
pPixel[2] := Byte(dwColor shr 16); |
end; |
} |
procedure TDirectDrawSurface.PutPixel24(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
4628,6 → 4668,18 |
//ret |
end; |
{ |
procedure TDirectDrawSurface.PutPixel24(x, y, color: Integer); |
var |
offset: Integer; |
pixelColor: LongInt; |
begin |
offset := (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch) + (x * 3); |
pixelColor := color and $FFFFFF; |
Move(pixelColor, PByte(Integer(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface) + offset)^, 3); |
end; |
} |
procedure TDirectDrawSurface.PutPixel32(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
4656,6 → 4708,50 |
end; |
end; |
{ |
function TDirectDrawSurface.GetPixel8(x, y: Integer): Integer; |
var |
Pixel: Byte; |
PixelPtr: PByte; |
begin |
PixelPtr := PByte(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + x + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel := PixelPtr^; |
Result := Pixel; |
end; |
function TDirectDrawSurface.GetPixel16(x, y: Integer): Integer; |
var |
Pixel: Word; |
PixelPtr: PWord; |
begin |
PixelPtr := PWord(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + (x * 2) + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel := PixelPtr^; |
Result := Pixel; |
end; |
function TDirectDrawSurface.GetPixel24(x, y: Integer): Integer; |
var |
Pixel: array[0..2] of Byte; |
PixelPtr: PByte; |
begin |
PixelPtr := PByte(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + (x * 3) + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel[0] := PixelPtr^; |
Pixel[1] := (PixelPtr+1)^; |
Pixel[2] := (PixelPtr+2)^; |
Result := Pixel[0] or (Pixel[1] shl 8) or (Pixel[2] shl 16); |
end; |
function TDirectDrawSurface.GetPixel32(x, y: Integer): Integer; |
var |
Pixel: Integer; |
PixelPtr: PInteger; |
begin |
PixelPtr := PInteger(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + (x * 4) + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel := PixelPtr^; |
Result := Pixel; |
end; |
} |
function TDirectDrawSurface.GetPixel8(x, y: Integer): Integer; assembler; |
{ on entry: self = eax, x = edx, y = ecx, result = eax } |
asm |
4831,6 → 4927,18 |
(Alpha * (aB - cb) shr 8) + cb); // B alpha |
end; |
{ |
function Conv24to16(Color: Integer): Word; |
var |
r, g, b: Byte; |
begin |
r := (Color shr 16) and $FF; |
g := (Color shr 8) and $FF; |
b := Color and $FF; |
Result := ((r shr 3) shl 11) or ((g shr 2) shl 5) or (b shr 3); |
end; |
} |
function Conv24to16(Color: Integer): Word; register; |
asm |
mov ecx,eax |
4939,6 → 5047,18 |
end; |
end; |
{ |
function Conv16to24(Color: Word): Integer; |
var |
r, g, b: Byte; |
begin |
r := (Color shr 11) and $1F; |
g := (Color shr 5) and $3F; |
b := Color and $1F; |
Result := (r shl 19) or (g shl 10) or (b shl 3); |
end; |
} |
function Conv16to24(Color: Word): Integer; register; |
asm |
xor edx,edx |
/VCL_DELPHIX_D6/DXInput.pas |
---|
2143,7 → 2143,7 |
if FDirectInput=nil then |
begin |
try |
TDirectInputCreate(DXLoadLibrary('DInput.dll', 'DirectInputCreateA')) |
TDirectInputCreate(DXLoadLibrary('DInput.dll', {$IFDEF UNICODE}'DirectInputCreateW'{$ELSE}'DirectInputCreateA'{$ENDIF})) |
(HInstance, DIRECTINPUT_VERSION, FDirectInput, nil); |
except |
FDirectInput := nil; |
/VCL_DELPHIX_D6/DXMapEditProperties.pas |
---|
197,13 → 197,13 |
begin |
W := FButton.Width; |
if not FButton.Visible then W := 0; |
SendMessage(Handle, EM_GETRECT, 0, LongInt(@Loc)); |
SendMessage(Handle, EM_GETRECT, 0, LPARAM(@Loc)); |
Loc.Bottom := ClientHeight + 1; {+1 is workaround for windows paint bug} |
Loc.Right := ClientWidth - W - 2; |
Loc.Top := 0; |
Loc.Left := 0; |
SendMessage(Handle, EM_SETRECTNP, 0, LongInt(@Loc)); |
SendMessage(Handle, EM_GETRECT, 0, LongInt(@Loc)); {debug} |
SendMessage(Handle, EM_SETRECTNP, 0, LPARAM(@Loc)); |
SendMessage(Handle, EM_GETRECT, 0, LPARAM(@Loc)); {debug} |
end; |
procedure TEdit.WMSize(var Message: TWMSize); |
/VCL_DELPHIX_D6/DXPictEdit.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXPictEdit.pas |
---|
1,10 → 1,10 |
unit DXPictEdit; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Controls, StdCtrls, ExtCtrls, |
ExtDlgs, DIB, Menus, Graphics, Clipbrd; |
ExtDlgs, DIB, Menus, Graphics, Clipbrd {$IFDEF VER28UP}, PNGImage{$ENDIF}; |
type |
/VCL_DELPHIX_D6/DXPlay.pas |
---|
4,10 → 4,6 |
{$INCLUDE DelphiXcfg.inc} |
{$IFNDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
{$MESSAGE ERROR 'If you want to use DXPlay.pas, please enable the IFDEF UseDirectPlay in DelphiXcfg.inc'} |
{$ENDIF} |
uses |
Windows, SysUtils, Classes, Forms, DXClass, ActiveX, DXETable, |
{$IfDef StandardDX} |
946,7 → 942,7 |
{ Thread start } |
FRecvThread := TDXPlayRecvThread.Create(Self); |
FRecvThread.Resume; |
FRecvThread.{$IFDEF VER14UP}Start{$ELSE}Resume{$ENDIF}; |
except |
Close; |
raise; |
/VCL_DELPHIX_D6/DXPlayFm.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXReg.pas |
---|
3,7 → 3,7 |
interface |
{$I DelphiXcfg.inc} |
{$WARNINGS OFF} |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Graphics, TypInfo, |
Controls, StdCtrls, ExtCtrls, Buttons, |
/VCL_DELPHIX_D6/DXRender.pas |
---|
8722,11 → 8722,16 |
end; |
end; |
function MulDiv64(a, b, c: Integer): Integer; assembler; |
asm |
mov eax, a |
imul b |
idiv c |
//function MulDiv64(a, b, c: Integer): Integer; assembler; |
//asm |
// mov eax, a |
// imul b |
// idiv c |
//end; |
function MulDiv64(a, b, c: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := a * b div c; |
end; |
function Max(B1, B2: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
/VCL_DELPHIX_D6/DXSounds.pas |
---|
636,13 → 636,13 |
(lpGUID, lpDS, pUnkOuter); |
end; |
function DXDirectSoundEnumerate(lpCallback: TDSEnumCallbackA; |
function DXDirectSoundEnumerate(lpCallback: {$IFDEF UNICODE}TDSEnumCallbackW{$ELSE}TDSEnumCallbackA{$ENDIF}; |
lpContext: Pointer): HRESULT; |
type |
TDirectSoundEnumerate = function(lpCallback: TDSEnumCallbackA; |
TDirectSoundEnumerate = function(lpCallback: {$IFDEF UNICODE}TDSEnumCallbackW{$ELSE}TDSEnumCallbackA{$ENDIF}; |
lpContext: Pointer): HRESULT; stdcall; |
begin |
Result := TDirectSoundEnumerate(DXLoadLibrary('DSound.dll', 'DirectSoundEnumerateA')) |
Result := TDirectSoundEnumerate(DXLoadLibrary('DSound.dll', {$IFDEF UNICODE}'DirectSoundEnumerateW'{$ELSE}'DirectSoundEnumerateA'{$ENDIF})) |
(lpCallback, lpContext); |
end; |
667,7 → 667,7 |
lpContext: Pointer): HRESULT; stdcall; |
begin |
try |
Result := TDirectSoundCaptureEnumerate(DXLoadLibrary('DSound.dll', 'DirectSoundCaptureEnumerateA')) |
Result := TDirectSoundCaptureEnumerate(DXLoadLibrary('DSound.dll', {$IFDEF UNICODE}'DirectSoundCaptureEnumerateW'{$ELSE}'DirectSoundCaptureEnumerateA'{$ENDIF})) |
(lpCallback, lpContext); |
except |
raise EDirectXError.Create(SSinceDirectX5); |
2178,7 → 2178,7 |
if Assigned(FOnFilledBuffer) then |
begin |
FNotifyThread := TSoundCaptureStreamNotify.Create(Self); |
FNotifyThread.Resume; |
FNotifyThread.{$IFDEF VER14UP}Start{$ELSE}Resume{$ENDIF}; |
end; |
end else |
FOnFilledBuffer := Value; |
2213,7 → 2213,7 |
if Assigned(FOnFilledBuffer) then |
begin |
FNotifyThread := TSoundCaptureStreamNotify.Create(Self); |
FNotifyThread.Resume; |
FNotifyThread.{$IFDEF VER14UP}Start{$ELSE}Resume{$ENDIF}; |
end; |
except |
Stop; |
/VCL_DELPHIX_D6/DXSprite.pas |
---|
2334,9 → 2334,9 |
case Value of |
stSprite: tmpSprite := TSprite.Create(TSpriteEngine(FOwnerItem)); |
stImageSprite: TImageSprite(tmpSprite) := TImageSprite.Create(TSpriteEngine(FOwnerItem)); |
{$WARN SYMBOL_DEPRECATED OFF} // Added by ViaThinkSoft [2015-12-07] |
{$WARNINGS OFF} |
stImageSpriteEx: TImageSpriteEx(tmpSprite) := TImageSpriteEx.Create(TSpriteEngine(FOwnerItem)); |
{$WARN SYMBOL_DEPRECATED ON} // Added by ViaThinkSoft [2015-12-07] |
{$WARNINGS ON} |
stBackgroundSprite: TBackgroundSprite(tmpSprite) := TBackgroundSprite.Create(TSpriteEngine(FOwnerItem)); |
else |
tmpSprite := nil |
/VCL_DELPHIX_D6/DXSpriteEdit.pas |
---|
14,6 → 14,7 |
} |
interface |
{$INCLUDE DelphiXcfg.inc} |
{$WARNINGS OFF} |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Controls, ExtCtrls, StdCtrls, |
Graphics, DXSprite, DXDraws; |
/VCL_DELPHIX_D6/Dcu290/.gitkeep |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DelphiX160.dproj |
---|
56,7 → 56,7 |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<Icon_MainIcon>DelphiX160_Icon.ico</Icon_MainIcon> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclx;vcl;vclimg;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
/VCL_DELPHIX_D6/DelphiX160.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DelphiX160_Icon.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DelphiX190.dproj |
---|
13,11 → 13,6 |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''"> |
<Base_OSX32>true</Base_OSX32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
51,7 → 46,6 |
<DCC_CBuilderOutput>All</DCC_CBuilderOutput> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput> |
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput> |
<DCC_E>false</DCC_E> |
<DCC_N>false</DCC_N> |
59,9 → 53,6 |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_OSX32)'!=''"> |
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclx;vclimg;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_Locale>1033</VerInfo_Locale> |
231,7 → 222,6 |
</Delphi.Personality> |
<Deployment/> |
<Platforms> |
<Platform value="OSX32">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
/VCL_DELPHIX_D6/DelphiX200.dpk |
---|
1,7 → 1,6 |
package DelphiX200; |
{$R *.res} |
{$R *.otares} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
/VCL_DELPHIX_D6/DelphiX200.dproj |
---|
33,6 → 33,12 |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
68,6 → 74,9 |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
/VCL_DELPHIX_D6/DelphiX220.dpk |
---|
5,7 → 5,7 |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE8'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
{$define SXEXTENSIONS} |
requires |
vcl, |
vclsmp, |
/VCL_DELPHIX_D6/DelphiX220.dproj |
---|
33,6 → 33,12 |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<SanitizedProjectName>DelphiX220</SanitizedProjectName> |
51,7 → 57,7 |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
70,6 → 76,9 |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
133,6 → 142,17 |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"> |
<Form>$ENDIF</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
155,9 → 175,6 |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">False</Platform> |
<Platform value="iOSDevice32">False</Platform> |
<Platform value="iOSSimulator">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
/VCL_DELPHIX_D6/DelphiX230.dpk |
---|
0,0 → 1,69 |
package DelphiX230; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10 - Seattle'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX230.dproj |
---|
0,0 → 1,178 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{123B3D31-C9BA-4AB0-973A-A9C1D76DEAEE}</ProjectGuid> |
<MainSource>DelphiX230.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<SanitizedProjectName>DelphiX230</SanitizedProjectName> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_F>false</DCC_F> |
<DCC_N>false</DCC_N> |
<GenDll>true</GenDll> |
<DCC_Description>DelphiX - DirectX components for Delphi 10 - Seattle</DCC_Description> |
<DCC_K>false</DCC_K> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_E>false</DCC_E> |
<DCC_S>false</DCC_S> |
<GenPackage>true</GenPackage> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX230.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">False</Platform> |
<Platform value="iOSDevice32">False</Platform> |
<Platform value="iOSSimulator">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX230.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX240.dpk |
---|
0,0 → 1,71 |
package DelphiX240; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.1 - Berlin'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX240.dproj |
---|
0,0 → 1,516 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{ACFD8812-E511-42FF-885D-C0D89E119714}</ProjectGuid> |
<MainSource>DelphiX240.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>17</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''"> |
<Base_Android>true</Base_Android> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Cfg_2)'=='true') or '$(Cfg_2_Android)'!=''"> |
<Cfg_2_Android>true</Cfg_2_Android> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenPackage>true</GenPackage> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<SanitizedProjectName>DelphiX240</SanitizedProjectName> |
<DCC_S>false</DCC_S> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.1 - Berlin</DCC_Description> |
<GenDll>true</GenDll> |
<DCC_E>false</DCC_E> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Android)'!=''"> |
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> |
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Android)'!=''"> |
<BT_BuildType>Debug</BT_BuildType> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX240.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">True</Platform> |
<Platform value="Win32">True</Platform> |
</Platforms> |
<Deployment Version="3"> |
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\18.0\Bpl\DelphiX240.bpl" Configuration="Debug" Class="ProjectOutput"> |
<Platform Name="Win32"> |
<RemoteName>DelphiX240.bpl</RemoteName> |
<Overwrite>true</Overwrite> |
</Platform> |
</DeployFile> |
<DeployClass Name="DependencyModule"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.dll;.bpl</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXResource"> |
<Platform Name="OSX32"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidClassesDexFile"> |
<Platform Name="Android"> |
<RemoteDir>classes</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AdditionalDebugSymbols"> |
<Platform Name="Win32"> |
<RemoteDir>Contents\MacOS</RemoteDir> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch768"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon144"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeMipsFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="ProjectOutput"> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Linux64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyFramework"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1024"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceDebug"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch320"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSInfoPList"/> |
<DeployClass Name="AndroidLibnativeArmeabiFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DebugSymbols"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1536"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage470"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage640"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640x1136"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSEntitlements"/> |
<DeployClass Name="Android_LauncherIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidGDBServer"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXInfoPList"/> |
<DeployClass Name="ProjectOSXEntitlements"/> |
<DeployClass Name="iPad_Launch2048"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStyles"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage426"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDef"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSResource"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectAndroidManifest"> |
<Platform Name="Android"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_DefaultAppIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="File"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Android"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="DependencyPackage"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.bpl</Extensions> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage960"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceResourceRules"/> |
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/> |
</Deployment> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX240.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX250.dpk |
---|
0,0 → 1,71 |
package DelphiX250; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.2 - Tokyo'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX250.dproj |
---|
0,0 → 1,516 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{ACFD8812-E511-42FF-885D-C0D89E119714}</ProjectGuid> |
<MainSource>DelphiX250.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>18</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''"> |
<Base_Android>true</Base_Android> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Cfg_2)'=='true') or '$(Cfg_2_Android)'!=''"> |
<Cfg_2_Android>true</Cfg_2_Android> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenPackage>true</GenPackage> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<SanitizedProjectName>DelphiX250</SanitizedProjectName> |
<DCC_S>false</DCC_S> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.2 - Tokyo</DCC_Description> |
<GenDll>true</GenDll> |
<DCC_E>false</DCC_E> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Android)'!=''"> |
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> |
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Android)'!=''"> |
<BT_BuildType>Debug</BT_BuildType> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX250.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">True</Platform> |
<Platform value="Win32">True</Platform> |
</Platforms> |
<Deployment Version="3"> |
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\DelphiX250.bpl" Configuration="Debug" Class="ProjectOutput"> |
<Platform Name="Win32"> |
<RemoteName>DelphiX250.bpl</RemoteName> |
<Overwrite>true</Overwrite> |
</Platform> |
</DeployFile> |
<DeployClass Name="DependencyModule"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.dll;.bpl</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXResource"> |
<Platform Name="OSX32"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidClassesDexFile"> |
<Platform Name="Android"> |
<RemoteDir>classes</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AdditionalDebugSymbols"> |
<Platform Name="Win32"> |
<RemoteDir>Contents\MacOS</RemoteDir> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch768"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon144"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeMipsFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="ProjectOutput"> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Linux64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyFramework"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1024"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceDebug"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch320"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSInfoPList"/> |
<DeployClass Name="AndroidLibnativeArmeabiFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DebugSymbols"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1536"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage470"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage640"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640x1136"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSEntitlements"/> |
<DeployClass Name="Android_LauncherIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidGDBServer"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXInfoPList"/> |
<DeployClass Name="ProjectOSXEntitlements"/> |
<DeployClass Name="iPad_Launch2048"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStyles"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage426"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDef"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSResource"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectAndroidManifest"> |
<Platform Name="Android"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_DefaultAppIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="File"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Android"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="DependencyPackage"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.bpl</Extensions> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage960"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceResourceRules"/> |
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/> |
</Deployment> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX250.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX260.dpk |
---|
0,0 → 1,78 |
package DelphiX260; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.3 - Rio'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX260.dproj |
---|
0,0 → 1,191 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{0E782D8A-083C-4D0F-B835-50552DA343A3}</ProjectGuid> |
<MainSource>DelphiX260.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.6</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX260</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.2 - Tokyo</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"> |
<Form>$ENDIF</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"> |
<Form>$ENDIF</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX260.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX260.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX270.dpk |
---|
0,0 → 1,78 |
package DelphiX270; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.4 - Sydney'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX270.dproj |
---|
0,0 → 1,178 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{84EABC6F-D69F-4837-9DC3-7A7FE610DA69}</ProjectGuid> |
<MainSource>DelphiX270.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>19.2</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX270</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.4 - Sydney</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"/> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX270.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX270.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX280.dpk |
---|
0,0 → 1,78 |
package DelphiX280; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 11 - Alexandria'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX280.dproj |
---|
0,0 → 1,189 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{988289D9-603A-42AE-84FD-B9B278FC1799}</ProjectGuid> |
<MainSource>DelphiX280.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>19.5</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX280</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 11 - Alexandria</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_RangeChecking>true</DCC_RangeChecking> |
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"/> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX280.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX280.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX290.dpk |
---|
0,0 → 1,78 |
package DelphiX290; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 12 - Athens'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX290.dproj |
---|
0,0 → 1,183 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{35E4C8B0-A649-4664-A52A-82A98347F8A2}</ProjectGuid> |
<MainSource>DelphiX290.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>20.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX290</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 12 - Athens</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vcl;rtl;vclimg;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclimg;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_RangeChecking>true</DCC_RangeChecking> |
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"/> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX290.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">False</Platform> |
<Platform value="iOSDevice32">False</Platform> |
<Platform value="iOSSimulator">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX290.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiXcfg.inc |
---|
6,8 → 6,8 |
{$DEFINE VER3UP} |
{$ENDIF} |
{$IFDEF VER120} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER3UP} |
{$ENDIF} |
{$IFDEF VER130} |
{$DEFINE VER3UP} |
33,7 → 33,7 |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER9UP} // Delphi 2005 |
{$ENDIF} |
{$IFDEF VER180} |
{$DEFINE VER3UP} |
42,9 → 42,9 |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER10UP} // Delphi 2006 |
{$IFDEF VER185} |
{$DEFINE VER11UP} |
{$DEFINE VER11UP} // Delphi 2007 |
{$ENDIF} |
{$ENDIF} |
{$IFDEF VER200} |
210,6 → 210,181 |
{$DEFINE VER22UP} //Delphi XE8 |
{$ENDIF} |
{$IFDEF VER300} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} //Delphi 10 Seattle |
{$ENDIF} |
{$IFDEF VER310} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP}//Delphi 10.1 Berlin |
{$ENDIF} |
{$IFDEF VER320} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} //Delphi 10.2 Tokyo |
{$ENDIF} |
{$IFDEF VER330} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} //Delphi 10.3 Rio |
{$ENDIF} |
{$IFDEF VER340} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} |
{$DEFINE VER27UP} //Delphi 10.4 Sydney |
{$ENDIF} |
{$IFDEF VER350} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} |
{$DEFINE VER27UP} |
{$DEFINE VER28UP} //Delphi 11 Alexandria |
{$ENDIF} |
{$IFDEF VER360} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} |
{$DEFINE VER27UP} |
{$DEFINE VER28UP} |
{$DEFINE VER29UP}//Delphi 12 Athens |
{$ENDIF} |
{$IFDEF VER100} |
// Delphi 3 |
{$Define D3UP} |
462,6 → 637,201 |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER300} |
// Delphi 23 - 10 Seattle |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER310} |
// Delphi 24 - 10.1 Berlin |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER320} |
// Delphi 25 - 10.2 Tokyo |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER330} |
// Delphi 26 - 10.3 Rio |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER340} |
// Delphi 27 - 10.4 Sydney |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
{$Define D27UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER350} |
// Delphi 28 - 11 Alexandria |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
{$Define D27UP} |
{$Define D28UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER360} |
// Delphi 29 - 12 Athens |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
{$Define D27UP} |
{$Define D28UP} |
{$Define D29UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{standard feature for drawing blend textures} |
{this conditional is add-on as is for eliminate bad color key switching} |
{$DEFINE DrawHWAcc} |
529,16 → 899,14 |
{$IFDEF VER12UP} |
{PNG support is added in Delphi 2009 and up as native feature} |
{there is turn on, it is for backward compatibility only} |
{$Define PNG_GRAPHICS} |
{$DEFINE PNG_GRAPHICS} |
{$ELSE} |
{for Delphi 2007 and lower when you usen PNG support, you have write} |
{name of PNG package into required section of pavkage source .dpk} |
{and turn on this support here - remove the dot only bellow} |
{.$Define PNG_GRAPHICS} |
{.$DEFINE PNG_GRAPHICS} |
{$ENDIF} |
{special feature for enumerate displayis like primary, secondary etc.} |
{only for special purpose, multimonitors etc.} |
{.$Define _DMO_} |
{.$Define UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
{.$DEFINE _DMO_} |
/VCL_DELPHIX_D6/DirectPlay.pas |
---|
18,12 → 18,6 |
interface |
{$INCLUDE DelphiXcfg.inc} |
{$IFNDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
{$MESSAGE ERROR 'If you want to use DXPlay.pas, please enable the IFDEF UseDirectPlay in DelphiXcfg.inc'} |
{$ENDIF} |
{$MINENUMSIZE 4} |
{$ALIGN ON} |
30,6 → 24,13 |
uses |
Windows; |
type |
{$IFDEF UNICODE} |
PCharAW = PWideChar; |
{$ELSE} |
PCharAW = PAnsiChar; |
{$ENDIF} |
var |
DPlayDLL: HMODULE = 0; |
228,8 → 229,8 |
dwCurrentPlayers: DWORD; // Current # players in session (read only) |
case Integer of |
0: ( |
lpszSessionName: PChar; // Name of the session |
lpszPassword: PChar; // Password of the session (optional) |
lpszSessionName: PCharAW; // Name of the session |
lpszPassword: PCharAW; // Password of the session (optional) |
dwReserved1: DWORD; // Reserved for future MS use. |
dwReserved2: DWORD; |
dwUser1: DWORD; // For use by the application |
348,8 → 349,8 |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszShortName: PChar; // The short or friendly name |
lpszLongName: PChar; // The long or formal name |
lpszShortName: PCharAW; // The short or friendly name |
lpszLongName: PCharAW; // The long or formal name |
); |
1: ( |
lpszShortNameA: PAnsiChar; |
372,9 → 373,9 |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszUsername: PChar; // User name of the account |
lpszPassword: PChar; // Password of the account |
lpszDomain: PChar; // Domain name of the account |
lpszUsername: PCharAW; // User name of the account |
lpszPassword: PCharAW; // Password of the account |
lpszDomain: PCharAW; // Domain name of the account |
); |
1: ( |
lpszUsernameA: PAnsiChar; // User name of the account |
399,8 → 400,8 |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszSSPIProvider: PChar; // SSPI provider name |
lpszCAPIProvider: PChar; // CAPI provider name |
lpszSSPIProvider: PCharAW; // SSPI provider name |
lpszCAPIProvider: PCharAW; // CAPI provider name |
dwCAPIProviderType: DWORD; // Crypto Service Provider type |
dwEncryptionAlgorithm: DWORD; // Encryption Algorithm type |
); |
424,7 → 425,7 |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: (lpszAccountID: PChar); // Account identifier |
0: (lpszAccountID: PCharAW); // Account identifier |
1: (lpszAccountIDA: PAnsiChar); |
2: (lpszAccountIDW: PWideChar); |
end; |
454,7 → 455,7 |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: (lpszMessage: PChar); // Message string |
0: (lpszMessage: PCharAW); // Message string |
1: (lpszMessageA: PAnsiChar); |
2: (lpszMessageW: PWideChar); |
end; |
1694,7 → 1695,7 |
dwSize: DWORD; // Size of this structure |
guidApplication: TGUID; // GUID of the Application |
case Integer of // Pointer to the Application Name |
0: (lpszAppName: PChar); |
0: (lpszAppName: PCharAW); |
1: (lpszAppNameW: PWideChar); |
3: (lpszAppNameA: PChar); |
end; |
1720,12 → 1721,12 |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: (lpszApplicationName: PChar; |
0: (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilename: PChar; |
lpszCommandLine: PChar; |
lpszPath: PChar; |
lpszCurrentDirectory: PChar; |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar); |
1: (lpszApplicationNameA: PAnsiChar; |
1751,15 → 1752,15 |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: (lpszApplicationName: PChar; |
0: (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilename: PChar; |
lpszCommandLine: PChar; |
lpszPath: PChar; |
lpszCurrentDirectory: PChar; |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar; |
lpszAppLauncherName: PChar); |
lpszAppLauncherName: PCharAW); |
1: (lpszApplicationNameA: PAnsiChar; |
filler1: TGUID; |
lpszFilenameA: PAnsiChar; |
/VCL_DELPHIX_D6/DirectX.pas |
---|
27,7 → 27,6 |
***************************************************************************) |
{ |
(c)2004 Jaro Benes Recompilation with Erik Unger's headers |
(c)2024 Daniel Marschall, small fixes |
Join in order: |
1) DirectDraw |
14459,8 → 14458,6 |
//DirectPlay file |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
(*==========================================================================; |
* |
* Copyright (C) Microsoft Corporation. All Rights Reserved. |
14531,6 → 14528,11 |
****************************************************************************) |
type |
{$IFDEF UNICODE} |
PCharAW = PWideChar; |
{$ELSE} |
PCharAW = PAnsiChar; |
{$ENDIF} |
(* |
* TDPID |
* DirectPlay player and group ID |
14677,8 → 14679,8 |
dwCurrentPlayers: DWORD; // Current # players in session (read only) |
case integer of |
0 : ( |
lpszSessionName: PChar; // Name of the session |
lpszPassword: PChar; // Password of the session (optional) |
lpszSessionName: PCharAW; // Name of the session |
lpszPassword: PCharAW; // Password of the session (optional) |
dwReserved1: DWORD; // Reserved for future MS use. |
dwReserved2: DWORD; |
dwUser1: DWORD; // For use by the application |
14798,8 → 14800,8 |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0 : ( |
lpszShortName : PChar; // The short or friendly name |
lpszLongName : PChar; // The long or formal name |
lpszShortName : PCharAW; // The short or friendly name |
lpszLongName : PCharAW; // The long or formal name |
); |
1 : ( |
lpszShortNameA : PAnsiChar; |
14822,9 → 14824,9 |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0 : ( |
lpszUsername: PChar; // User name of the account |
lpszPassword: PChar; // Password of the account |
lpszDomain: PChar; // Domain name of the account |
lpszUsername: PCharAW; // User name of the account |
lpszPassword: PCharAW; // Password of the account |
lpszDomain: PCharAW; // Domain name of the account |
); |
1 : ( |
lpszUsernameA: PAnsiChar; // User name of the account |
14849,8 → 14851,8 |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0 : ( |
lpszSSPIProvider : PChar; // SSPI provider name |
lpszCAPIProvider : PChar; // CAPI provider name |
lpszSSPIProvider : PCharAW; // SSPI provider name |
lpszCAPIProvider : PCharAW; // CAPI provider name |
dwCAPIProviderType: DWORD; // Crypto Service Provider type |
dwEncryptionAlgorithm: DWORD; // Encryption Algorithm type |
); |
14874,7 → 14876,7 |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0 : (lpszAccountID : PChar); // Account identifier |
0 : (lpszAccountID : PCharAW); // Account identifier |
1 : (lpszAccountIDA : PAnsiChar); |
2 : (lpszAccountIDW : PWideChar); |
end; |
14904,7 → 14906,7 |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0 : (lpszMessage : PChar); // Message string |
0 : (lpszMessage : PCharAW); // Message string |
1 : (lpszMessageA : PAnsiChar); |
2 : (lpszMessageW : PWideChar); |
end; |
16152,7 → 16154,7 |
dwSize: DWORD; // Size of this structure |
guidApplication: TGUID; // GUID of the Application |
case Integer of // Pointer to the Application Name |
0: (lpszAppName: PChar); |
0: (lpszAppName: PCharAW); |
1: (lpszAppNameW: PWideChar); |
3: (lpszAppNameA: PChar); |
end; |
16178,12 → 16180,12 |
dwSize: DWORD; |
dwFlags: DWORD; |
case integer of |
0 : (lpszApplicationName: PChar; |
0 : (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilename: PChar; |
lpszCommandLine: PChar; |
lpszPath: PChar; |
lpszCurrentDirectory: PChar; |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar); |
1 : (lpszApplicationNameA: PAnsiChar; |
16209,15 → 16211,15 |
dwSize: DWORD; |
dwFlags: DWORD; |
case integer of |
0 : (lpszApplicationName: PChar; |
0 : (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilename: PChar; |
lpszCommandLine: PChar; |
lpszPath: PChar; |
lpszCurrentDirectory: PChar; |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar; |
lpszAppLauncherName: PChar); |
lpszAppLauncherName: PCharAW); |
1 : (lpszApplicationNameA: PAnsiChar; |
filler1: TGUID; |
lpszFilenameA: PAnsiChar; |
16844,9 → 16846,7 |
DPLAD_SYSTEM = DPLMSG_SYSTEM; |
{$ENDIF} // IFDEF UseDirectPlay |
//DirectSetup file |
(*========================================================================== |
* |
17041,14 → 17041,14 |
var |
DirectXSetupW : function (hWnd: HWND; lpszRootPath: PWideChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXSetupA : function (hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXSetup : function (hWnd: HWND; lpszRootPath: PChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXSetup : function (hWnd: HWND; lpszRootPath: PCharAW; dwFlags: DWORD) : Integer; stdcall; |
DirectXDeviceDriverSetupW : function (hWnd: HWND; lpszDriverClass: PWideChar; |
lpszDriverPath: PWideChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXDeviceDriverSetupA : function (hWnd: HWND; lpszDriverClass: PAnsiChar; |
lpszDriverPath: PAnsiChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXDeviceDriverSetup : function (hWnd: HWND; lpszDriverClass: PChar; |
lpszDriverPath: PChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXDeviceDriverSetup : function (hWnd: HWND; lpszDriverClass: PCharAW; |
lpszDriverPath: PCharAW; dwFlags: DWORD) : Integer; stdcall; |
DirectXRegisterApplicationW : function |
(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppW) : Integer; stdcall; |
22644,7 → 22644,6 |
* |
***************************************************************************) |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
function DPErrorString(Value: HResult) : string; |
begin |
case Value of |
22703,7 → 22702,6 |
else Result := 'Unrecognized Error'; |
end; |
end; |
{$ENDIF} // UseDirectPlay |
//DirectSetup file |
22987,7 → 22985,6 |
{$ENDIF} |
end; |
{DirectInput} |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
{DirectPlay} |
if not IsNTandDelphiRunning then |
begin |
23015,7 → 23012,6 |
end; |
{DirectPlay} |
{$ENDIF} // UseDirectPlay |
{DirectSetup} |
if not IsNTandDelphiRunning then |
begin |
23068,11 → 23064,9 |
{DirectInput} |
FreeLibrary(DInputDLL); |
{DirectInput} |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
{DirectPlay} |
if DPlayDLL <> 0 then FreeLibrary(DPlayDLL); |
{DirectPlay} |
{$ENDIF} |
{DirectSetup} |
FreeLibrary(DSetupDLL); |
{DirectSetup} |
/VCL_DELPHIX_D6/SXLib.pas |
---|
0,0 → 1,3139 |
unit SXlib; |
//Simplified X handling routine |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, |
{$IFDEF QDA_SUPPORT}QDArc,{$ENDIF} |
DXDraws, DirectX, D3DUtils, DXClass; |
(* SXF形式について |
name | ofs | length | comment |
---------------------------------------------------------------------------------------------------- |
Signature | 0 | 16 | 'Simplified_X01 ' |
nVextices | 16 | 2 | number of vertices |
nIndices | 18 | 2 | number of indices for vertices |
dwFVF | 20 | 4 | flags for flexible vertex format |
VertexSize| 24 | 4 | required bytes per vertex |
Vertices | 256 | VertexSize * nVertices | vertices |
Indices | 256+Vertices | 2 * nIndices | indices for vertices |
*) |
(* SX形式について(古い) |
name | ofs | length | comment |
---------------------------------------------------------------------------- |
Signature | 0 | 16 | 'Simplified_X00 ' |
nVextices | 16 | 2 | number of vertices |
nIndices | 18 | 2 | number of indices for vertices |
Vertices | 256 | 40 * nVertices | vertices(TSXVertex) |
Indices | 256+Vertices | 2 * nIndices | indices for vertices |
*) |
const |
//SXファイル識別子 |
//SX file identifier |
SX_SIGNATURE: string[16] = 'Simplified_X00 '; //SXFlexible |
SXF_SIGNATURE: string[16] = 'Simplified_X01 '; //古いSX |
//メッシュを描画するときに一度にDirect3Dに流し込む頂点の最大数(必ず3の倍数) |
//One at a time when drawing the flow into the maximum number of vertices Direct3D mesh (must be a multiple of 3) |
DIV_VERTICES: Word = $FFFF; |
//TSXVertex用、FVFフラグ |
FVF_SXVERTEX: DWord = (D3DFVF_VERTEX or D3DFVF_DIFFUSE or D3DFVF_SPECULAR); |
//TSXVertexMT用 |
FVF_SXVERTEXMT: DWord = (D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or D3DFVF_TEX2); |
type |
TSXMesh = class; |
TSXFrame = class; |
TSXFrameList = class; |
TSXScene = class; |
TSXRenderingQueue = class; |
//SX形式のための頂点データ |
//Vertex data for the SX-style |
TSXVertex = packed record |
case Integer of |
0: ( |
x, y, z: Single; //頂点 |
nx, ny, nz: Single; //法線 |
diffuse: TD3DCOLOR; //ディフューズ |
specular: TD3DCOLOR; //スペキュラ |
tu, tv: Single; //テクスチャ座標 ** Texture coordinates |
); |
1: ( |
pos: TD3DVector; |
normal: TD3DVector; |
); |
end; |
PSXVertex = ^TSXVertex; |
TSXVertexArray = array[0..$FFFFFF] of TSXVertex; |
PSXVertexArray = ^TSXVertexArray; |
//マルチテクスチャ対応SXVertex |
//SXVertex multi-texture support |
TSXVertexMT = packed record |
case Integer of |
0: ( |
x, y, z: Single; //頂点 |
nx, ny, nz: Single; //法線 |
diffuse: TD3DCOLOR; //ディフューズ |
specular: TD3DCOLOR; //スペキュラ |
tu0, tv0: Single; //テクスチャ座標 |
tu1, tv1: Single; //テクスチャ座標(2) |
); |
1: ( |
pos: TD3DVector; |
normal: TD3DVector; |
); |
end; |
PSXVertexMT = ^TSXVertexMT; |
TSXVertexArrayMT = array[0..$FFFFFF] of TSXVertexMT; |
PSXVertexArrayMT = ^TSXVertexArrayMT; |
//ビルボードのための頂点情報 |
//Billboard top information for |
TSXVertexBB = record |
case Integer of |
0: ( |
//視点からの距離1の時の、中心からの相対座標 |
//At a distance from the viewpoint of the relative coordinate from the center |
dx, dy: Single; |
color: TD3DCOLOR; //色 |
tu, tv: Single; //テクスチャ座標 |
); |
1: ( |
size: TSngPoint; |
); |
end; |
//イベントハンドラ |
//Event handler |
TSXRenderMeshEvent = procedure(Sender: TSXFrame) of object; |
//ブレンドモード |
//Blend |
// TSXBlendMode = ( |
// sxbDefault, //普通、透けない |
// sxbAdd, //加算合成 |
// sxbAlpha, //半透明 |
// sxbSub //減算合成 |
// ); |
//可視属性 |
//Visible attribute |
TSXVisibility = ( |
sxvShow, //見える |
sxvHide, //隠れる。子フレームも含めて |
sxvHideMyself //隠れる。子フレームは隠れない。 |
); |
//クラス群 |
//Classes |
//メッシュ用クラス |
//The Mesh Class |
TSXMesh = class |
private |
procedure SetVertexSize(const Value: DWord); |
protected |
FOwner: TDXDraw; //色々お世話になるDDDDオブジェクト |
FVBuf: IDirect3DVertexBuffer7; //VertexBuffer |
FIndexCount: Word; //頂点インデクスの数 |
FVertexCount: Word; //頂点の数 |
FFaceCount: Word; //面の数、常に頂点数/3 |
FVertexSize: DWord; //1個の頂点あたりのサイズ |
FVFFlags: DWord; //描画させるときのフラグ |
VertexKeepBuf: Pointer; //頂点の配列を入れる。Keep用のバッファとして使う |
FIndices: array of Word; //頂点インデクス |
FLocked: Boolean; //ロック中? |
FPVertex: Pointer; //頂点バッファへのポインタ |
FRecovery: Boolean; //リカバリ中? |
function GetIndex(idx: Word): Word; |
function GetVertex(idx: Word): Pointer; |
procedure SetIndex(idx: Word; const Value: Word); |
procedure SetVertex(idx: Word; const Value: Pointer); |
public |
constructor Create(AOwner: TDXDraw); |
destructor Destroy; override; |
procedure KeepVB; //画面が初期化される時の事を考えて、現在のVBの状態を保持 |
procedure RecoverVB; //保持したVBを復元 |
property VertexBuffer: IDirect3DVertexBuffer7 read FVBuf; //VertexBuffer |
property IndexCount: Word read FIndexCount; //頂点インデクスの数 |
property VertexCount: Word read FVertexCount; //頂点の数 |
property FaceCount: Word read FFaceCount; //面の数(頂点の数 / 3 |
property Vertex[idx: Word]: Pointer read GetVertex write SetVertex; //頂点への参照 |
property Index[idx: Word]: Word read GetIndex write SetIndex; //頂点インデクス |
property FVF: DWord read FVFFlags write FVFFlags; //FlexibleVertexFormatに関するフラグ |
property VertexSize: DWord read FVertexSize write SetVertexSize; |
procedure Draw(dwFlags: DWord); //DrawIndexedPrimitiveVBで全部描画 |
procedure DrawPartial(start: Word; count: Word; dwFlags: DWord); //DrawIndexedPrimitiveVBで部分描画 |
procedure LoadFromStream(s: TStream); |
procedure LoadFromFile(fileName: string); |
{$IFDEF QDA_SUPPORT} |
procedure LoadFromQDA(QDAName, QDAID: string); |
{$ENDIF} |
function Lock: Pointer; |
procedure Unlock; |
procedure SetSize(newVertexCount, newIndexCount: Word); //バッファの大きさを再設定する、中身は消える |
procedure Optimize; |
end; |
{ |
TSXMesh = class(TSXGenMesh) |
private |
function GetVertex(idx: Word): TSXVertex; override; |
procedure SetVertex(idx: Word; const Value: TSXVertex); override; |
public |
property Vertex[idx:Word]:TSXVertex read GetVertex write SetVertex; //頂点 |
function Lock:PSXVertexArray; |
end; |
} |
//フレーム |
//The Frame |
TSXFrame = class |
private |
FMatrix: TD3DMATRIX; //変換行列(自分の座標系→親座標系) |
FMeshMatrix: TD3DMATRIX; //メッシュ描画時の変換行列…メッシュ座標→自分座標 |
FAncestors: TSXFrameList; //祖先フレーム達 |
FChildren: TSXFrameList; //子フレーム達 |
FParent: TSXFrame; //親フレーム(Ancestors[Ancestors.Count-1]と同) |
FVisibility: TSXVisibility; //可視属性 |
FBindRenderState: Boolean; //自分の子孫のレンダリングステートを、強制的に自分のにする |
FBindTexture: Boolean; //自分の子孫のテクスチャを、強制的に自分のにする |
FBindMaterial: Boolean; //自分の子孫のマテリアルを、強制的に自分のにする |
RenderedMatrix: TD3DMATRIX; //最後にレンダリングされたときのワールド行列(ビルボードの描画に使用) |
BBAttached: Boolean; //ビルボードがくっついてる? |
function GetWorldMatrix: TD3DMATRIX; |
procedure SetParent(const Value: TSXFrame); |
public |
//中身 |
Texture: TDirect3DTexture2; //メッシュに貼り付けるテクスチャ |
Mesh: TSXMesh; //書き込むメッシュ |
Material: TD3DMATERIAL7; //マテリアル |
//レンダリングステートの制御 |
Lighting: Boolean; //True:ライティングをする, False:頂点の色をそのまま使う |
Specular: Boolean; //スペキュラハイライトをつける |
BlendMode: TRenderType; //描画時のブレンドモード |
//イベントハンドラ |
OnRenderMesh: TSXRenderMeshEvent; //メッシュをこれから書きますですイベント |
//いろいろ |
Tag: DWord; //整数値、なんにでも使って |
RenderAttr: Integer; //整数値、OnRenderMeshで、マテリアル番号代わりにどうぞ |
//コンストラクタ・デストラクタ |
constructor Create(parentFrame: TSXFrame); |
destructor Destroy; override; |
//親子関係 |
property Ancestors: TSXFrameList read FAncestors; |
property Children: TSXFrameList read FChildren; |
property Parent: TSXFrame read FParent write SetParent; |
property BindRenderState: Boolean read FBindRenderState write FBindRenderState; |
property BindTexture: Boolean read FBindTexture write FBindTexture; |
property BindMaterial: Boolean read FBindMaterial write FBindMaterial; |
//可視属性 |
property Visibility: TSXVisibility read FVisibility write FVisibility; |
//座標変換関係 |
property Matrix: TD3DMATRIX read FMatrix write FMatrix; |
property WorldMatrix: TD3DMATRIX read GetWorldMatrix; //自分座標→ワールド座標の変換行列 |
property MeshMatrix: TD3DMATRIX read FMeshMatrix write FMeshMatrix; //メッシュ描画時の変換行列…メッシュ座標→自分座標 |
procedure SetTransform(ref: TSXFrame; const mat: TD3DMATRIX); |
function GetTransform(ref: TSXFrame): TD3DMATRIX; |
function LocalToWorld(vec: TD3DVector): TD3DVector; //フレーム内での座標を、ワールド座標に変換する |
function WorldToLocal(vec: TD3DVector): TD3DVector; //ワールド座標内の座標をフレーム内の座標に変換する |
//位置 |
procedure SetTranslation(ref: TSXFrame; const pos: TD3Dvector); |
function GetTranslation(ref: TSXFrame): TD3DVector; |
//姿勢 |
//…軸ベクトルで設定・取得 |
procedure SetOrientation(ref: TSXFrame; const vecZ: TD3DVector; const vecY: TD3DVector); |
procedure GetOrientation(ref: TSXFrame; var vecZ: TD3DVector; var vecY: TD3DVector); |
//…マトリクスを与えて姿勢だけ設定 |
procedure SetOrientationMatrix(ref: TSXFrame; const mat: TD3DMATRIX); |
//お便利 |
//…Z軸をtargetフレーム内の座標posを向ける。Y軸はworldフレーム内のY軸に向け。Y軸の傾きをbank度とする |
procedure LookAt(target: TSXFrame; const pos: TD3DVector; world: TSXFrame; const bank: Integer); |
function ViewMatrix: TD3DMatrix; //このフレームをカメラにした場合のビュー行列を生成 |
end; |
//フレームのリスト |
//List of frames |
TSXFrameList = class(TList) |
private |
function GetFrame(idx: Integer): TSXFrame; |
procedure SetFrame(idx: Integer; const Value: TSXFrame); |
public |
property Frames[idx: Integer]: TSXFrame read GetFrame write SetFrame; default; |
constructor Create; |
destructor Destroy; override; |
procedure Assign(source: TSXFrameList); |
end; |
//シーン全体 |
TSXScene = class |
private |
FCamera: TSXFrame; |
FOwner: TDXDraw; |
FProjectionMatrix: TD3DMATRIX; |
FVP: TD3DVIEWPORT7; |
OpaqueQueue: TSXRenderingQueue; //不透明体用のキュー |
AlphaQueue: TSXRenderingQueue; //半透明透明体用のキュー |
AddQueue: TSXRenderingQueue; //加算半透明体用のキュー |
SubQueue: TSXRenderingQueue; //減算半透明体用のキュー |
//ProcessVertices用 |
//MeshProcessor:TSXMesh; //Lightingをしないとき・環境マップする時用 |
//MeshProcessorMT:TSXMesh; //同上、ただしマルチテクスチャ(2ステージ)版 |
public |
constructor Create(DDCompo: TDXDraw); |
destructor Destroy; override; |
property CameraFrame: TSXFrame read FCamera write FCamera; //視点を置くフレーム |
procedure Render(rootFrame: TSXFrame); //rootFrame以下を描画 |
procedure Clear(dwFlags: DWord; color: DWORD; z: Single; stencil: DWord); //バックバッファのクリア |
procedure SetProjection(fov, aspect, nearZ, farZ: Single); //透視変換の設定 |
procedure SetViewPort(left, top, right, bottom: DWord); //ビューポート |
procedure Recover; //ビューポートなどの状態をリストア |
procedure PushBillboard(blendMode: TRenderType; ref: TSXFrame; pos: TD3DVector; points: array of TSXVertexBB; tex: TDirect3DTexture2); |
function SphereVisibility(ref: TSXFrame; pos: TD3DVector; radius: Single; depth: Single): Boolean; //refフレーム内にある、中心pos、半径radiusの球は見えるか、但し、距離がdepth以上なら見えないものとする |
end; |
//ライト |
TSXLight = class |
private |
FOwner: TDXDraw; |
FIndex: DWord; //SetLightに渡す、インデクス |
FEnabled: Boolean; |
FUpdate: Boolean; //パラメータの変更を、即反映 |
procedure SetEnabled(const Value: Boolean); |
public |
Params: TD3DLIGHT7; |
constructor Create(DDCompo: TDXDraw; index: DWord); |
destructor Destroy; override; |
procedure BeginUpdate; //Paramsの内容を、Direct3Dに伝えなくする |
procedure EndUpdate; //Paramsの内容を、Direct3Dに伝えなくした状態を解除 |
property Enabled: Boolean read FEnabled write SetEnabled; |
//お便利ルーチン |
procedure SetupDiffuse(_R, _G, _B: Single); |
procedure SetupSpecular(_R, _G, _B: Single); |
procedure SetupAmbient(_R, _G, _B: Single); |
procedure SetupColors(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB: Single); |
procedure SetupRanges(range, att0, att1, att2: Single); |
procedure SetupDirectional(dir: TD3DVector); |
procedure SetupPoint(pos: TD3DVector); |
procedure SetupSpot(pos, dir: TD3DVector; theta, phi, falloff: Single); |
procedure FitFrame(target: TSXFrame); //フレームの位置・向きにセットする |
end; |
//複数のライトを管理するオブジェクト |
TSXLightGroup = class(TList) |
private |
FOwner: TDXDraw; |
FCapacity: DWord; //管理するライトの数 |
FLights: array of TSXLight; |
//FSpecularPower:Single; //スペキュラ強度 |
function GetLights(idx: DWord): TSXLight; |
function GetUnusedLight: TSXLight; |
// procedure SetSpecularPower(const Value: Single); |
public |
constructor Create(DDCompo: TDXDraw; capacity: DWord); |
destructor Destroy; override; |
property Lights[idx: DWord]: TSXLight read GetLights; default; |
property UnusedLight: TSXLight read GetUnusedLight; //Enabledになってない、最初のライトを返す |
//property SpecularPower:Single read FSpecularPower write SetSpecularPower; |
procedure EnableAll; //全部点ける |
procedure DisableAll; //全部消す |
procedure Recover; //解像度を変えた後などのリカバリ |
end; |
TSXMaterial = class |
private |
FOwner: TDXDraw; |
FUpdate: Boolean; |
public |
Params: TD3DMATERIAL7; |
constructor Create(DDCompo: TDXDraw); |
procedure BeginUpdate; //Paramsの内容を、Direct3Dに伝えなくする |
procedure EndUpdate; //Paramsの内容を、Direct3Dに伝えなくした状態を解除 |
procedure SetupDiffuse(_R, _G, _B: Single); |
procedure SetupSpecular(_R, _G, _B: Single); |
procedure SetupAmbient(_R, _G, _B: Single); |
procedure SetupEmissive(_R, _G, _B: Single); |
procedure SetupSpecularPower(pow: Single); |
procedure SetupColors(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB, emsR, emsG, emsB, pow: Single); |
end; |
//メッシュ描画キューに入れる情報 |
TSXMeshInfo = record |
frame: TSXFrame; //そのメッシュを描こうとしたフレームはどれ? |
mesh: TSXMesh; //メッシュ |
mat: TD3DMatrix; //変換行列 |
tex: TDirect3DTexture2; //テクスチャ |
mtrl: TD3DMATERIAL7; //マテリアル |
lighting: Boolean; //光源計算する/しない |
OnRender: TSXRenderMeshEvent; |
end; |
//ビルボード描画キューに入れる情報 |
TSXBillboardInfo = record |
ref: TSXFrame; //基準フレーム |
pos: TD3DVector; //基準フレーム内での位置 |
tex: TDirect3DTexture2; //テクスチャ |
pts: array[0..3] of TSXVertexBB; //頂点データ |
end; |
//レンダリングの順序を保つためのバッファ、透明体かそうでないかで順序を変える。 |
//Render order to maintain the buffer, or not change the order in a transparent body. |
TSXRenderingQueue = class |
private |
FOwner: TDXDraw; //色々お世話になるDDDDオブジェクト |
Scene: TSXScene; //この |
MeshQueue: array of TSXMeshInfo; |
BillboardQueue: array of TSXBillboardInfo; |
FMeshCapacity: Integer; //メッシュを情報蓄える容量 |
FBillboardCapacity: Integer; |
FMeshCount: Integer; //キューに入ってる数 |
FBillboardCount: Integer; |
procedure SetBillBoardCapacity(const Value: Integer); |
procedure SetMeshCapacity(const Value: Integer); //ビルボードについての情報を蓄える容量 |
public |
constructor Create(AOwner: TDXDraw; _Scene: TSXScene); |
destructor Destroy; override; |
procedure PushMesh(mesh: TSXMesh; frame: TSXFrame; mat: TD3DMatrix; tex: TDirect3DTexture2; mtrl: TD3DMATERIAL7; event: TSXRenderMeshEvent); //メッシュ |
procedure PushBillboard(ref: TSXFrame; pos: TD3DVector; tex: TDirect3DTexture2; pts: array of TSXVertexBB); //ビルボード |
procedure Render(viewMat: TD3DMATRIX; viewParam: TD3DVIEWPORT7); //レンダリング |
procedure Flush; //レンダリングせず、バッファの中を空に **Without rendering the buffer to empty |
property MeshCapacity: Integer read FMeshCapacity write SetMeshCapacity; |
property BillboardCapacity: Integer read FBillboardCapacity write SetBillBoardCapacity; |
property MeshCount: Integer read FMeshCount; |
property BillboardCount: Integer read FBillboardCount; |
end; |
{Renderer of the primitive} |
TSXPrimitiveRec = packed record |
Texture: TDirect3DTexture2; //テクスチャ |
Bound: array[0..3] of TD3DTLVertex; //四角形 |
ZOrder: Integer; //Zオーダ |
BlendMode: TRenderType; //ブレンドモード |
end; |
PPrimitive = ^TSXPrimitiveRec; |
TSXTextureCoordRec = packed record |
Texture: TDirect3DTexture2; |
Top, Left, Bottom, Right: Single; //テクスチャ座標 |
end; |
PTextureCoord = ^TSXTextureCoordRec; |
TSingleRect = packed record |
Left, Top, Right, Bottom: Single; |
end; |
TSXPrimitiveRenderer = class |
private |
FDXDraw: TDXDraw; |
FZMax: Integer; //Zオーダの最大値 |
FMaxPrimitives: Integer; //格納できるTLVの最大値 |
ZSortBuf: ^Integer; //Zソート用バッファ |
ZSortCount: ^Integer; //Zソート用カウンタ |
PrimBuf: PPrimitive; //プリミティブ入れ |
PrimCount: Integer; //現在PrimBufに入ってるプリミティブの数 |
Patterns: PTextureCoord; //テクスチャパターン |
FNPrims: Integer; //最後にUpdateメソッドを発行した際の、プリミティブの数 |
FColorKey: Boolean; //カラーキーによる抜き色を行う? |
procedure setZMax(v: Integer); |
public |
constructor Create(DDCompo: TDXDraw; PrimitiveCount: Integer; PatternCount: Integer); |
destructor Destroy; override; |
property ZMax: Integer read FZMax write setZMax; |
procedure SetPattern(idx: Integer; Tex: TDirect3DTexture2; Coord: TRect); //パターンとしてTexのCoordで示される範囲を登録 |
procedure Push(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD3DTLVertex; Z: Integer; blend: TRenderType); //TLVertexで四角形を入れる |
procedure Push2D(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //2D的な四角形 |
procedure PushPattern(iPat: Integer; p1, p2, p3, p4: TD3DHVector; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュ(3次元) |
procedure PushPattern2D(iPat: Integer; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュする |
procedure PushPatternRect(iPat: Integer; rect: TSingleRect; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュする(矩形) |
procedure BeginRender; //Z値にしたがってソート |
procedure RenderOneLayer(Z: Integer); //単一のZ値を持つ集合だけ描画 |
procedure EndRender; //スタックを空に |
procedure Render; //全部描画(BeginRender~RenderOneLayer~EndRender) |
property nPrims: Integer read FNPrims; |
property ColorKey: Boolean read FColorKey write FColorKey; |
class function SingleRect(x1, y1, x2, y2: Single): TSingleRect; |
end; |
//SXVertex作成 |
function SXVertex(x, y, z, nx, ny, nz: Single; dif, spec: TD3DCOLOR; tu, tv: Single): TSXVertex; |
//SXVertexBB作成 |
function SXVertexBB(dx, dy: Single; col: TD3DCOLOR; tu, tv: Single): TSXVertexBB; |
//マテリアル設定の便宜を図る関数 |
//Convenience function for setting material |
function MakeMaterial(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB, emsR, emsG, emsB, pow: Single): TD3DMATERIAL7; |
implementation |
type |
TSXTLVertexMT = packed record |
case Integer of |
0: ( |
x, y, z, rhw: Single; //頂点 |
diffuse: TD3DCOLOR; //ディフューズ |
specular: TD3DCOLOR; //スペキュラ |
tu0, tv0: Single; //テクスチャ座標 |
tu1, tv1: Single; //テクスチャ座標2 |
); |
1: ( |
pos: TD3DVector; |
); |
2: ( |
hgPos: TD3DHVector; |
); |
end; |
const |
FVF_SXTLVertexMT: DWord = (D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or D3DFVF_TEX2); |
{ Helper functions } |
function SXVertex(x, y, z, nx, ny, nz: Single; dif, spec: TD3DCOLOR; tu, tv: Single): TSXVertex; |
begin |
result.x := x; |
result.y := y; |
result.z := z; |
result.nx := nx; |
result.ny := ny; |
result.nz := nz; |
result.diffuse := dif; |
result.specular := spec; |
result.tu := tu; |
result.tv := tv; |
end; |
function SXVertexBB(dx, dy: Single; col: TD3DCOLOR; tu, tv: Single): TSXVertexBB; |
begin |
result.dx := dx; |
result.dy := dy; |
result.color := col; |
result.tu := tu; |
result.tv := tv; |
end; |
{ TSXMesh } |
//コンストラクタ |
//Constructor |
constructor TSXMesh.Create(AOwner: TDXDraw); |
begin |
inherited Create; |
FOwner := AOwner; |
FVBuf := nil; |
SetLength(FIndices, 0); |
FIndexCount := 0; |
FFaceCount := 0; |
FVertexCount := 0; |
VertexKeepBuf := nil; |
FVertexSize := sizeof(TSXVertex); |
FVFFlags := FVF_SXVERTEX; |
FLocked := False; |
FRecovery := False; |
end; |
//デストラクタ |
//Destructor |
destructor TSXMesh.Destroy; |
begin |
if FVBuf <> nil then |
FVBuf := nil; //._Release; |
if VertexKeepBuf <> nil then |
FreeMem(VertexKeepBuf); |
FIndices := nil; |
inherited; |
end; |
//現在のVertexBufferの状態を保持 |
//Currently holds the state of VertexBuffer |
procedure TSXMesh.KeepVB; |
begin |
if FVBuf <> nil then |
begin |
//バッファサイズの変更 |
//Resizing of the buffer |
if VertexKeepBuf <> nil then |
FreeMem(VertexKeepBuf); |
VertexKeepBuf := AllocMem(VertexSize * FVertexCount); |
Self.Lock; |
Move(FPVertex^, VertexKeepBuf^, VertexSize * FVertexCount); |
Self.Unlock; |
end; |
end; |
//保存したVertexBufferの状態を復元 |
//Restore the state saved VertexBuffer |
procedure TSXMesh.RecoverVB; |
begin |
if FVBuf <> nil then |
begin |
//リカバリ期間・開始 |
//Recovery period begins |
FRecovery := True; |
FVBuf := nil; |
SetSize(FVertexCount, FIndexCount); |
Self.Lock; |
Move(VertexKeepBuf^, FPVertex^, VertexSize * FVertexCount); |
Self.Unlock; |
FreeMem(VertexKeepBuf); |
VertexKeepBuf := nil; |
FRecovery := False; |
//リカバリ期間・終了 |
//Recovery period ends |
end; |
end; |
//DPで描画 |
//Simple DP draw |
procedure TSXMesh.Draw(dwFlags: DWord); |
var |
ofs: Word; |
nIs: Word; |
begin |
ofs := 0; |
while ofs < FIndexCount do |
begin |
nIs := FIndexCount - ofs; |
if nIs > DIV_VERTICES then |
nIs := DIV_VERTICES; |
FOwner.D3DDevice7.DrawIndexedPrimitiveVB( |
D3DPT_TRIANGLELIST, FVBuf, 0, FVertexCount, FIndices[ofs], nIs, dwFlags); |
Inc(ofs, nIs); |
end; |
end; |
//DPで描画 |
//Draw DP strem of primitives |
procedure TSXMesh.DrawPartial(start: Word; count: Word; dwFlags: DWord); |
begin |
FOwner.D3DDevice7.DrawIndexedPrimitiveVB( |
D3DPT_TRIANGLELIST, FVBuf, 0, FVertexCount, FIndices[start], count, dwFlags); |
end; |
//インデクス操作 |
//Check index |
function TSXMesh.GetIndex(idx: Word): Word; |
begin |
if idx >= FIndexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点インデクスを参照しようとしました'); |
result := 0; |
exit; |
end; |
result := FIndices[idx]; |
end; |
procedure TSXMesh.SetIndex(idx: Word; const Value: Word); |
begin |
if idx >= FIndexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点インデクスを設定しようとしました'); |
exit; |
end; |
FIndices[idx] := Value; |
end; |
//頂点操作 |
//Operation on Vertex |
function TSXMesh.GetVertex(idx: Word): Pointer; |
var |
pV: Pointer; |
ofs: DWord; |
lpdwSize: Cardinal; |
begin |
//範囲チェック |
//check range |
if idx >= FVertexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点を参照しようとしました'); |
result := nil; |
exit; |
end; |
//ロックされていないなら、ロック。ロックされてるなら、前に得たポインタをゲット |
//when is unlocked, then lock there |
if not FLocked then |
begin |
if FVBuf.Lock(DDLOCK_READONLY or DDLOCK_WAIT, pV, lpdwSize) <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがロックできません'); |
Halt; |
end; |
end |
else |
pV := FPVertex; |
//返り値に格納 |
//calc place of vertices |
ofs := idx * VertexSize; |
asm |
mov eax,ofs; |
add pV,eax; |
end; |
result := pV; |
//アンロック |
//unlock |
if not FLocked then |
begin |
if FVBuf.Unlock <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがアンロックできません'); |
Halt; |
end; |
end; |
end; |
procedure TSXMesh.SetVertex(idx: Word; const Value: Pointer); |
var |
ofs: DWord; |
pV: ^TSXVertex; |
lpdwSize: Cardinal; |
begin |
//範囲チェック |
//check range |
if idx >= FVertexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点を変更しようとしました'); |
exit; |
end; |
//ロックされていないなら、ロック。ロックされてるなら、前に得たポインタをゲット |
//Test when unlocked, and after test lock |
if not FLocked then |
begin |
if FVBuf.Lock(DDLOCK_WRITEONLY or DDLOCK_WAIT, Pointer(pV), lpdwSize) <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがロックできません'); |
Halt; |
end; |
end |
else |
pV := FPVertex; |
//格納するっす |
//physic size of vertices stream |
ofs := idx * VertexSize; |
asm |
mov eax,ofs; |
add pV,eax; |
end; |
Move(Value^, pV^, VertexSize); |
//Unlock |
if not FLocked then |
begin |
if FVBuf.Unlock <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがアンロックできません'); |
Halt; |
end; |
end; |
end; |
//1Vertexあたりのサイズを変更 |
//Set size for all Vertexes |
procedure TSXMesh.SetVertexSize(const Value: DWord); |
begin |
FVertexSize := Value; |
SetSize(FVertexCount, FIndexCount); |
end; |
//ストリームから読み込み |
//Reading from strem |
procedure TSXMesh.LoadFromStream(s: TStream); |
var |
sign: array[0..16] of AnsiChar; |
nVertices, nIndices: Word; |
StartPos: Integer; |
begin |
StartPos := s.Position; |
//シグネチャの確認 |
//Check of the signature |
sign[16] := Chr(0); |
s.ReadBuffer(sign, 16); |
if StrPas(sign) = SX_SIGNATURE then |
begin |
//SX形式 |
FVertexSize := Sizeof(TSXVertex); |
FVFFlags := FVF_SXVERTEX; |
//頂点数・頂点インデクス数の設定 |
//Setting the number of vertices of vertex indices |
s.ReadBuffer(nVertices, Sizeof(Word)); |
s.ReadBuffer(nIndices, Sizeof(Word)); |
end |
else |
if StrPas(sign) = SXF_SIGNATURE then |
begin |
//頂点数・頂点インデクス数の設定 |
//Setting the number of vertices of vertex indices |
s.ReadBuffer(nVertices, Sizeof(Word)); |
s.ReadBuffer(nIndices, Sizeof(Word)); |
//SXFlexible format |
s.ReadBuffer(FVFFlags, Sizeof(DWord)); |
s.ReadBuffer(FVertexSize, Sizeof(DWord)); |
end |
else |
begin |
//DDDD_PutDebugMessage('SXLib: 不正なSXファイルです'); |
Halt; |
end; |
SetSize(nVertices, nIndices); |
//ヘッダのスキップ |
//Skip header |
s.Position := StartPos + 256; |
try |
//頂点のロード |
//Peak load |
Lock; |
s.ReadBuffer(FPVertex^, VertexSize * nVertices); |
Unlock; |
//頂点インデクスのロード |
//Load indexes |
s.ReadBuffer(FIndices[0], Sizeof(Word) * nIndices); |
except |
//DDDD_PutDebugMessage('SXLib: ストリームからの読み込み中にエラーが発生しました'); |
Halt; |
end; |
end; |
//ファイルから読み込み |
//Load from file by name |
procedure TSXMesh.LoadFromFile(fileName: string); |
var |
fs: TFileStream; |
begin |
fs := nil; |
try |
fs := TFileStream.Create(filename, fmOpenRead); |
except |
//DDDD_PutDebugMessage('SXLib: ' + filename + ' が、開けません'); |
Halt; |
end; |
LoadFromStream(fs); |
fs.Free; |
end; |
{$IFDEF QDA_SUPPORT} |
//QDAから読み込み |
procedure TSXMesh.LoadFromQDA(QDAName, QDAID: string); |
var |
ms: TMemoryStream; |
begin |
ms := nil; |
try |
ms := ExtractFromQDAFile(QDAName, QDAID); |
except |
//DDDD_PutDebugMessage('SXLib: ' + QDAname + ' 内の、' + QDAID + 'が抽出できません'); |
Halt; |
end; |
LoadFromStream(ms); |
ms.Free; |
end; |
{$ENDIF} |
//VertexBuffer Lock |
function TSXMesh.Lock: Pointer; |
var lpdwSize: Cardinal; |
begin |
if FVBuf.Lock(DDLOCK_WAIT, Pointer(FPVertex), lpdwSize) <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがロックできません'); |
Halt; |
end; |
result := FPVertex; |
FLocked := True; |
end; |
//VertexBuffer unlock |
procedure TSXMesh.Unlock; |
begin |
if FVBuf.Unlock <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがアンロックできません'); |
Halt; |
end; |
FLocked := False; |
end; |
//頂点配列とインデクス配列のサイズを再設定 |
//Reconfigure the size of the array and vertex array indices |
procedure TSXMesh.SetSize(newVertexCount, newIndexCount: Word); |
var |
vbdesc: TD3DVERTEXBUFFERDESC; |
begin |
FVertexCount := newVertexCount; |
FIndexCount := newIndexCount; |
FFaceCount := newIndexCount div 3; |
//まず、既存のVertexBufferの解放 |
//When exist VertexBuffer, release it |
if FVBuf <> nil then |
FVBuf := nil; //.Release; |
//VertexBufferの生成 |
//Generate VertexBuffer |
ZeroMemory(@vbdesc, Sizeof(vbdesc)); |
with vbdesc do |
begin |
dwSize := Sizeof(vbdesc); |
{$IFNDEF D3D_deprecated} |
if not (dtTnLHAL in FOwner.D3DDeviceTypeSet) then |
dwCaps := D3DVBCAPS_SYSTEMMEMORY |
else |
{$ENDIF} |
dwCaps := 0; |
dwFVF := FVFFlags; |
dwNumVertices := newVertexCount; |
end; |
FOwner.D3D7.CreateVertexBuffer(vbdesc, FVBuf, 0); |
//頂点インデクス配列の設定 |
//Vertex set of the array index |
if not FRecovery then |
SetLength(FIndices, newIndexCount); |
end; |
//最適かするっ。ロックとかはできなくなるよ |
//Optimize, cannot be locked |
procedure TSXMesh.Optimize; |
begin |
FVBuf.Optimize(FOwner.D3DDevice7, 0); |
end; |
{ TSXFrame } |
constructor TSXFrame.Create(parentFrame: TSXFrame); |
begin |
inherited Create; |
//親子関係の初期化 |
//Initialize parent-child relationship |
FAncestors := TSXFrameList.Create; |
if ParentFrame <> nil then |
begin |
//Ancestral copy of the list |
FAncestors.Assign(parentFrame.Ancestors); //先祖リストのコピー |
//Fathers at the end of the list, put the parent |
FAncestors.Add(parentFrame); //先祖リストの末尾に、親を入れる |
//Parents put their children to the list |
ParentFrame.Children.Add(Self); //親の子リストに自分をつける |
end; |
FChildren := TSXFrameList.Create; |
FParent := parentFrame; |
FBindMaterial := False; |
FBindRenderState := False; |
FBindTexture := False; |
//変数とかの初期化 |
//Variable Or First Initialization |
FMatrix := D3DUtil_SetIdentityMatrix; |
FMeshMatrix := D3DUtil_SetIdentityMatrix; |
BlendMode := rtDraw; |
Material := MakeMaterial(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0); |
Visibility := sxvShow; |
Lighting := True; |
Specular := True; |
OnRenderMesh := nil; |
Mesh := nil; |
Texture := nil; |
end; |
destructor TSXFrame.Destroy; |
begin |
inherited; |
while Children.Count > 0 do |
begin //This child frame is recursively Freed |
Children[0].Free; //これで、再帰的に子フレームがFreeされる |
end; |
//リストオブジェクトの解放 |
//Object free list |
FChildren.Free; |
FAncestors.Free; |
//親のリストから自分をはずす |
//Remove yourself from the list of parents |
if Parent <> nil then |
Parent.Children.Delete(Parent.Children.IndexOf(Self)); |
end; |
//自分の座標→ワールド座標 のための変換行列を得る |
//To obtain the world coordinate transformation matrix → coordinate their |
function TSXFrame.GetWorldMatrix: TD3DMATRIX; |
var |
mat: TD3DMATRIX; |
i: Integer; |
begin |
mat := FMatrix; |
//祖先のマトリクスを 親→祖父… の順に乗じていく。 |
//Ancestors[0] はNilであり、途中にNilは入らないという前提の下に計算 |
// Parent → grandfather ... we multiply the matrix of the ancestral order. |
// Ancestors [0] is not Nil, Nil way under the assumption that the fit is calculated |
for i := Ancestors.Count - 1 downto 1 do |
begin |
{$IFDEF USE_S_MATHPACK} |
mat := NowCompositeMatrix(mat, Ancestors[i].FMatrix); |
{$ELSE} |
D3DMath_MatrixMultiply(mat, FMatrix, Ancestors[i].FMatrix) |
{$ENDIF} |
end; |
result := mat; |
end; |
//…Z軸をtargetフレーム内の座標posを向ける。worldフレームのY軸をupベクトルに指定し、Y軸のZ軸回りの傾きをbank度とする |
// Z axis toward the target coordinates in the frame pos. Y-axis of world frame specified in the up vector, Y and Z axis tilt of the axis around which at bank |
procedure TSXFrame.LookAt(target: TSXFrame; const pos: TD3DVector; world: TSXFrame; const bank: Integer); |
var |
vRel: TD3DVECTOR; //Targetとの相対座標 //Target coordinates to relative |
vecCeil: TD3Dvector; //天井のベクトル //Vector Ceiling |
vecX, vecY, vecZ: TD3DVECTOR; |
normX: Single; //X軸の長さ(天井とZが平行かどうかのチェック用) |
//The length of the X-axis (Z and for checking whether the ceiling parallel) |
begin |
{ |
//targetのposは、自分の座標系でどこなのか |
vRel:=WorldToLocal(target.LocalToWorld(pos)); |
//向き = Z軸ベクトル |
vecZ:=NowNormalize(vRel); |
//YZ平面にvRelを射影して、X軸と外積を取って新しいY軸を得る |
vecY:=NowCrossProduct(Vector(0,vecZ.Y,vecZ.Z), Vector(1,0,0)); |
vecY:=NowNormalize(vecY); |
SetOrientation(Self, vecZ, vecY); |
} |
//targetのposは、自分の座標系でどこなのか |
//pos of target, or a coordinate system where one |
vRel := WorldToLocal(target.LocalToWorld(pos)); |
//向き = Z軸ベクトル |
//Direction = Z axis vector |
{$IFDEF USE_S_MATHPACK} |
vecZ := NowNormalize(vRel); |
{$ELSE} |
vecZ := D3DMath_VecNormalize(vRel); |
{$ENDIF} |
//天井の向き = worldのY軸 |
//Ceiling Direction = World of the Y-axis |
{$IFDEF USE_S_MATHPACK} |
vecCeil := NowSub(WorldToLocal(world.LocalToWorld(Vector(0, 1, 0))), WorldToLocal(world.LocalToWorld(Vector(0, 0, 0)))); |
vecCeil := NowNormalize(vecCeil); |
{$ELSE} |
vecCeil := D3DMath_Vec3Subtract(WorldToLocal(world.LocalToWorld(MakeD3DVector(0, 1, 0))), WorldToLocal(world.LocalToWorld(MakeD3DVector(0, 0, 0)))); |
vecCeil := D3DMath_VecNormalize(vecCeil); |
{$ENDIF} |
//天井とZで外積を取って、Xの向きとする |
//Taking the cross product in the ceiling and Z and the direction of the X |
{$IFDEF USE_S_MATHPACK} |
vecX := NowCrossProduct(vecCeil, vecZ); |
{$ELSE} |
vecX := D3DMath_Vec3Cross(vecCeil, vecZ); |
{$ENDIF} |
//天井とZが平行な場合、右耳の方向をworldのX軸にする |
//And Z is parallel to the ceiling, the direction of the X-axis of the world right ear |
{$IFDEF USE_S_MATHPACK} |
normX := NowLength(vecX); |
{$ELSE} |
normX := D3DMath_Vec3Length(vecX); |
{$ENDIF} |
if normX < 0.0001 then |
{$IFDEF USE_S_MATHPACK} |
vecX := NowSub(WorldToLocal(world.LocalToWorld(Vector(1, 0, 0))), WorldToLocal(world.LocalToWorld(Vector(0, 0, 0)))); |
{$ELSE} |
vecX := D3DMath_Vec3Subtract(WorldToLocal(world.LocalToWorld(MakeD3DVector(1, 0, 0))), WorldToLocal(world.LocalToWorld(MakeD3DVector(0, 0, 0)))); |
{$ENDIF} |
{$IFDEF USE_S_MATHPACK} |
vecX := NowNormalize(vecX); |
{$ELSE} |
vecX := D3DMath_VecNormalize(vecX); |
{$ENDIF} |
//XとZで外積を取って、Yの向きとする |
//Taking the cross product in X and Z direction and the Y |
{$IFDEF USE_S_MATHPACK} |
vecY := NowNormalize(NowCrossProduct(vecZ, vecX)); |
{$ELSE} |
vecY := D3DMath_VecNormalize(D3DMath_Vec3Cross(vecZ, vecX)); |
{$ENDIF} |
//以上で姿勢の計算完了~セット |
//Complete set - at least calculate the position |
SetOrientation(Self, vecZ, vecY); |
//バンク |
//Bank |
if bank <> 0 then |
{$IFDEF USE_S_MATHPACK} |
SetTransform(Self, NowRotZMatrix(bank)); |
{$ELSE} |
begin |
SetTransform(Self, D3DUtil_SetRotateZMatrix(bank)); |
end; |
{$ENDIF} |
end; |
//refに対する変換行列の設定 |
procedure TSXFrame.SetTransform(ref: TSXFrame; const mat: TD3DMATRIX); |
begin |
if ref = Self then |
begin |
//自分への変換行列 |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, FMatrix); |
{$ELSE} |
FMatrix := D3DMath_MatrixMultiply(mat, FMatrix) |
{$ENDIF} |
end |
else |
if ref = Parent then |
begin |
//親への変換行列 |
//Transformation matrix to the parent |
FMatrix := mat; |
end |
else |
begin |
//自分→ref→ワールド→親 |
//Ones to ref to World to Parent |
if Parent <> nil then |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix( |
NowCompositeMatrix(mat, ref.WorldMatrix), |
NowInvMatrix(Parent.WorldMatrix) |
) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(D3DMath_MatrixMultiply(mat, WorldMatrix), D3DMath_MatrixInvert(Parent.WorldMatrix)) |
end |
{$ENDIF} |
else |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, NowInvMatrix(Parent.WorldMatrix)); |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, D3DMath_MatrixInvert(Parent.WorldMatrix)); |
end |
{$ENDIF} |
end |
else |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, ref.WorldMatrix) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, ref.WorldMatrix) |
end |
{$ENDIF} |
else |
FMatrix := mat; |
end; |
end; |
end; |
//refに対する変換行列の取得 |
//ref to get the transformation matrix |
function TSXFrame.GetTransform(ref: TSXFrame): TD3DMATRIX; |
begin |
if ref = Self then |
begin |
//自分への変換を得る…単位行列に決まってる。 |
//Their conversion to get ... I decided the matrix. |
result := D3DUtil_SetIdentityMatrix; |
end |
else |
if ref = Parent then |
begin |
//親へのオリエンテーションを得る |
//Get to the parent orientation |
result := FMatrix; |
end |
else |
begin |
//自分→ワールド→ref |
//Ones to World to Ref |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
result := NowCompositeMatrix(WorldMatrix, NowInvMatrix(ref.WorldMatrix)) |
{$ELSE} |
begin |
Result := D3DMath_MatrixMultiply(WorldMatrix, D3DMath_MatrixInvert(Parent.WorldMatrix)); |
end |
{$ENDIF} |
else |
result := WorldMatrix; |
end; |
end; |
//姿勢の設定 |
//Setting position |
procedure TSXFrame.SetOrientation(ref: TSXFrame; const vecZ: TD3DVector; |
const vecY: TD3DVector); |
var |
tmpMat: TD3DMATRIX; //refフレームとの相対変換行列 //relative to ref frame transformation matrix |
vTrans: array[0..3] of Single; //平行移動成分の保存用 //Translation component storage |
vecX: TD3DVECTOR; |
begin |
{$IFDEF USE_S_MATHPACK} |
vecX := NowNormalize(NowCrossProduct(vecY, vecZ)); |
{$ELSE} |
vecX := D3DMath_VecNormalize(D3DMath_Vec3Cross(vecY, vecZ)); |
{$ENDIF} |
if ref = Parent then |
begin |
//親への姿勢を作るだけなら、簡単 |
//If you just make a commitment to parents, simply |
with FMatrix do |
begin |
_11 := vecX.X; _12 := vecX.Y; _13 := vecX.Z; |
_21 := vecY.X; _22 := vecY.Y; _23 := vecY.Z; |
_31 := vecZ.X; _32 := vecZ.Y; _33 := vecZ.Z; |
end; |
end |
else |
begin |
//平行移動成分の保存 |
//Save the translation component |
vTrans[0] := FMatrix._41; |
vTrans[1] := FMatrix._42; |
vTrans[2] := FMatrix._43; |
//変換 |
//transformation |
with tmpMat do |
begin |
_11 := vecX.X; _12 := vecX.Y; _13 := vecX.Z; _14 := 0; |
_21 := vecY.X; _22 := vecY.Y; _23 := vecY.Z; _24 := 0; |
_31 := vecZ.X; _32 := vecZ.Y; _33 := vecZ.Z; _34 := 0; |
_41 := vTrans[0]; _42 := vTrans[1]; _43 := vTrans[2]; _44 := 1; |
end; |
SetTransform(ref, tmpMat); |
//Restoring the translation component |
with FMatrix do |
begin |
_41 := vTrans[0]; _42 := vTrans[1]; _43 := vTrans[2]; |
end; |
end; |
end; |
//位置の設定 |
//Set Position |
procedure TSXFrame.SetTranslation(ref: TSXFrame; const pos: TD3Dvector); |
var |
tmpMat: TD3DMATRIX; //refフレームとの相対変換行列 //relative to ref frame transformation matrix |
origMat: TD3DMATRIX; //For postural |
begin |
if ref = Parent then |
begin |
//親へのトランスレーションを作るだけなら、簡単 |
//If you only make the translation to the parent easily |
with FMatrix do |
begin |
_41 := pos.X; _42 := pos.Y; _43 := pos.Z; |
end; |
end |
else |
begin |
origMat := FMatrix; |
tmpMat := FMatrix; |
with tmpMat do |
begin |
_41 := pos.X; _42 := pos.Y; _43 := pos.Z; |
end; |
SetTransform(ref, tmpMat); |
with FMatrix do |
begin |
_11 := OrigMat._11; _12 := OrigMat._12; _13 := OrigMat._13; |
_21 := OrigMat._21; _22 := OrigMat._22; _23 := OrigMat._23; |
_31 := OrigMat._31; _32 := OrigMat._32; _33 := OrigMat._33; |
end; |
end; |
end; |
procedure TSXFrame.GetOrientation(ref: TSXFrame; var vecZ, |
vecY: TD3DVector); |
var |
tmpMat: TD3DMATRIX; //Results calculated buffer |
begin |
tmpMat := GetTransform(ref); |
with vecY, tmpMat do |
begin |
X := _21; Y := _22; Z := _23; |
end; |
with vecZ, tmpMat do |
begin |
X := _31; Y := _32; Z := _33; |
end; |
end; |
//姿勢だけをマトリクスで与える |
//Just give the attitude matrix |
procedure TSXFrame.SetOrientationMatrix(ref: TSXFrame; |
const mat: TD3DMATRIX); |
var |
pushedV: TD3DVector; //平行移動分保存用 //Save Translates for minutes |
begin |
//保存 |
//Save |
with pushedV do |
begin |
x := FMatrix._41; y := FMatrix._42; z := FMatrix._43; |
end; |
if ref = Self then |
begin |
//自分への変換行列 |
//His conversion matrix |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, FMatrix); |
{$ELSE} |
FMatrix := D3DMath_MatrixMultiply(mat, FMatrix) |
{$ENDIF} |
end |
else |
if ref = Parent then |
begin |
//親への変換行列 |
//Transformation matrix to the parent |
FMatrix := mat; |
end |
else |
begin |
//自分→ref→ワールド→親 |
//My→ref →World →Parent |
if Parent <> nil then |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix( |
NowCompositeMatrix(mat, ref.WorldMatrix), |
NowInvMatrix(Parent.WorldMatrix)) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(D3DMath_MatrixMultiply(mat, ref.WorldMatrix), D3DMath_MatrixInvert(Parent.WorldMatrix)) |
end |
{$ENDIF} |
else |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, NowInvMatrix(Parent.WorldMatrix)); |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, D3DMath_MatrixInvert(Parent.WorldMatrix)); |
end |
{$ENDIF} |
end |
else |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, ref.WorldMatrix) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, ref.WorldMatrix) |
end |
{$ENDIF} |
else |
FMatrix := mat; |
end; |
end; |
//復元 |
//Restore |
with pushedV do |
begin |
FMatrix._41 := x; FMatrix._42 := y; FMatrix._43 := z; |
end; |
end; |
function TSXFrame.GetTranslation(ref: TSXFrame): TD3DVECTOR; |
var |
tmpMat: TD3DMATRIX; //結果算出用バッファ Results calculated buffer |
begin |
if ref = Parent then |
begin |
result.X := FMatrix._41; |
result.Y := FMatrix._42; |
result.Z := FMatrix._43; |
end |
else |
begin |
tmpMat := GetTransform(ref); |
result.X := tmpMat._41; |
result.Y := tmpMat._42; |
result.Z := tmpMat._43; |
end; |
end; |
//フレーム内の座標→ワールド座標 |
//Coordinates in world coordinate frame |
function TSXFrame.LocalToWorld(vec: TD3DVector): TD3DVector; |
begin |
{$IFDEF USE_S_MATHPACK} |
Result := NowHeteroginize(NowTransform(NowHomoginize(vec), WorldMatrix)); |
{$ELSE} |
Result := D3DMath_VecHeterogenize(D3DMath_VecTransform(D3DMath_VecHomogenize(vec), WorldMatrix)) |
{$ENDIF} |
end; |
//ワールド座標→フレーム内の座標 |
//Coordinates in world coordinate frame |
function TSXFrame.WorldToLocal(vec: TD3DVector): TD3DVector; |
begin |
{$IFDEF USE_S_MATHPACK} |
Result := NowHeteroginize(NowTransform(NowHomoginize(vec), NowInvMatrix(WorldMatrix))); |
{$ELSE} |
Result := D3DMath_VecHeterogenize(D3DMath_VecTransform(D3DMath_VecHomogenize(vec), D3DMath_MatrixInvert(WorldMatrix))); |
{$ENDIF} |
end; |
//親フレームの変更 |
//Changing the parent frame |
procedure TSXFrame.SetParent(const Value: TSXFrame); |
//先祖リストを再帰的に修正する |
//Fix recursive ancestor list |
procedure RebuildAncestors(me: TSXFrame); |
var |
i: Integer; |
begin |
for i := 0 to me.Children.Count - 1 do |
begin |
//ヲレの先祖を先祖と崇めなさい |
//Ancestor worship ancestors and record your Wo |
me.Children[i].Ancestors.Assign(me.Ancestors); |
//ヲレを親と崇めなさい |
//Users report your parents to revere |
me.Children[i].Ancestors.Add(me); |
//子々孫々に渡ってそうしたまへ |
//Sometimes we do that across to our children grandchildren |
RebuildAncestors(me.Children[i]); |
end; |
end; |
begin |
//元の親のリストから外す |
//Removed from the list of the original parent |
if FParent <> nil then |
FParent.Children.Delete(FParent.Children.IndexOf(Self)); |
if Value <> nil then |
begin |
//新しい親のリストに加える |
//Add to the list of new parent |
Value.Children.Add(Self); |
//先祖リストを変える |
//Changing the list of ancestors |
Ancestors.Assign(Value.Ancestors); |
Ancestors.Add(Value); |
end |
else |
begin |
Ancestors.Clear; |
end; |
//自分に子供がいるなら、それらの先祖リストも変える |
//If you have children yourself, they also change the list of ancestors |
RebuildAncestors(Self); |
FParent := Value; |
end; |
//このフレームをカメラにした場合のビュー行列を計算 |
//When calculating the view matrix of the camera frame |
function TSXFrame.ViewMatrix: TD3DMatrix; |
begin |
{$IFDEF USE_S_MATHPACK} |
Result := NowInvMatrix(WorldMatrix); |
{$ELSE} |
Result := D3DMath_MatrixInvert(WorldMatrix) |
{$ENDIF} |
end; |
{ TSXFrameList } |
//コピー |
//Copy |
procedure TSXFrameList.Assign(source: TSXFrameList); |
var |
i: Integer; |
begin |
Self.Clear; |
for i := 0 to source.Count - 1 do |
begin |
Self.Add(Pointer(source.Frames[i])); |
end; |
end; |
constructor TSXFrameList.Create; |
begin |
inherited; |
end; |
destructor TSXFrameList.Destroy; |
begin |
inherited; |
end; |
function TSXFrameList.GetFrame(idx: Integer): TSXFrame; |
begin |
result := Items[idx]; |
end; |
procedure TSXFrameList.SetFrame(idx: Integer; const Value: TSXFrame); |
begin |
Items[idx] := Pointer(Value); |
end; |
{ TSXScene } |
constructor TSXScene.Create(DDCompo: TDXDRaw); |
begin |
inherited Create; |
AlphaQueue := TSXRenderingQueue.Create(DDCompo, Self); |
OpaqueQueue := TSXRenderingQueue.Create(DDCompo, Self); |
AddQueue := TSXRenderingQueue.Create(DDCompo, Self); |
SubQueue := TSXRenderingQueue.Create(DDCompo, Self); |
{ |
MeshProcessor:=TSXMesh.Create(DDCompo); |
MeshProcessor.VertexSize:=Sizeof(D3DTLVERTEX); |
MeshProcessor.FVF:=D3DFVF_TLVERTEX; |
MeshProcessor.SetSize(65535,65535); //(^^;) |
MeshProcessorMT:=TSXMesh.Create(DDCompo); |
MeshProcessorMT.VertexSize:=Sizeof(TSXTLVertexMT); |
MeshProcessorMT.FVF:=FVF_SXTLVertexMT; |
MeshProcessorMT.SetSize(65535,65535); |
} |
FCamera := nil; |
FOwner := DDCompo; |
end; |
destructor TSXScene.Destroy; |
begin |
AlphaQueue.Free; |
OpaqueQueue.Free; |
AddQueue.Free; |
SubQueue.Free; |
//MeshProcessor.Free; |
//MeshProcessorMT.Free; |
inherited; |
end; |
//描画 |
procedure TSXScene.Render(rootFrame: TSXFrame); |
var |
viewMat: TD3DMATRIX; |
curTexture: TDirect3DTexture2; |
curMaterial: TD3DMATERIAL7; |
curBlendMode: TRenderType; |
procedure QueingFrame(frame: TSXFrame; const mat: TD3DMATRIX; RSBind, TexBind, MatBind: Boolean); |
var |
i: Integer; |
meshM: TD3DMATRIX; |
begin |
//子フレーム無し、かつ、描画するメッシュなしなら、何もしない |
//Visibilityが「子供もひっくるめて隠す」でも何もしない |
//ただし、ビルボードがくっついてる時は、マトリクスの合成だけ行う |
if (not frame.BBAttached) then |
if ((frame.Children.Count = 0) and (frame.Mesh = nil)) or (frame.Visibility = sxvHide) then |
exit; |
//変換行列の計算 |
{$IFDEF USE_S_MATHPACK} |
frame.RenderedMatrix := NowCompositeMatrix(frame.Matrix, mat); |
{$ELSE} |
frame.RenderedMatrix := D3DMath_MatrixMultiply(frame.Matrix, mat); |
{$ENDIF} |
//メッシュの描画 |
if frame.Mesh <> nil then |
begin |
{$IFDEF USE_S_MATHPACK} |
meshM := NowCompositeMatrix(frame.MeshMatrix, frame.RenderedMatrix); |
{$ELSE} |
meshM := D3DMath_MatrixMultiply(frame.MeshMatrix, frame.RenderedMatrix); |
{$ENDIF} |
//テクスチャがあるなら、貼り付ける。「親のテクスチャ使用」を強制されてないなら |
if not TexBind then |
curTexture := frame.Texture; |
//マテリアルを設定する |
if not MatBind then |
curMaterial := frame.Material; |
//レンダリングステートの設定 |
if not RSBind then |
curBlendMode := frame.BlendMode; |
//キューに放り込む |
if frame.Visibility = sxvShow then |
begin |
case curBlendMode of |
rtAdd: AddQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
rtBlend: AlphaQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
rtDraw: OpaqueQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
rtSub: SubQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
end; |
end; |
end; |
//子供の描画 |
for i := 0 to frame.Children.Count - 1 do |
begin |
QueingFrame(frame.Children[i], frame.RenderedMatrix, RSBind or frame.BindRenderState, TexBind or frame.BindTexture, MatBind or frame.BindMaterial); |
end; |
end; |
begin |
if FCamera = nil then |
begin |
//DDDD_PutDebugMessage('SXLib: カメラフレームが設定されていません'); |
exit; |
end; |
//ビュー行列の作成…(ワールド座標系でのカメラフレームの姿勢)の逆 |
//Create a view matrix (camera position in world coordinate frame), the inverse |
viewMat := CameraFrame.ViewMatrix; |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_VIEW, viewMat); |
//再帰的にキューに入れる |
//Recursively queued |
if rootFrame.Parent = nil then |
QueingFrame(rootFrame, D3DUtil_SetIdentityMatrix, false, false, false) |
else |
QueingFrame(rootFrame, rootFrame.Parent.WorldMatrix, false, false, false); |
{ キューに入ってる物体を描く } |
{ I draw the object in the queue } |
/////不透明体 |
//Opaque |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_ZENABLE, 1); //Z比較あり |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 1); //Z書き込みあり |
//ブレンドなし |
//No Blending |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_BLENDENABLE, 0); |
OpaqueQueue.Render(viewMat, FVP); |
/////加算合成体 |
//Body additive synthesis |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 0); //Z書き込みなし |
//ブレンドの設定 |
//Set of Blend |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_BLENDENABLE, 1); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, DWord(D3DTA_TEXTURE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, DWord(D3DTA_DIFFUSE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, DWord(D3DTOP_MODULATE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, DWord(D3DTA_TEXTURE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, DWord(D3DTA_DIFFUSE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, DWord(D3DTOP_MODULATE)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, DWord(D3DBLEND_ONE)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, DWord(D3DBLEND_ONE)); |
AddQueue.Render(viewMat, FVP); |
//半透明体 |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, DWord(D3DBLEND_SRCALPHA)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, DWord(D3DBLEND_INVSRCALPHA)); |
AlphaQueue.Render(viewMat, FVP); |
//減算合成体…減算はニセ減算だけど(^^;) |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, DWord(D3DBLEND_ZERO)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, DWord(D3DBLEND_INVSRCCOLOR)); |
SubQueue.Render(viewMat, FVP); |
//テクスチャに何も指定しない状態で、一連のレンダリングを終える |
FOwner.D3DDevice7.SetTexture(0, nil); |
end; |
procedure TSXScene.Clear(dwFlags: DWord; color: DWORD; z: Single; stencil: DWord); |
var |
r: TD3DRect; |
begin |
with r do |
begin |
x1 := FVP.dwX; |
y1 := FVP.dwY; |
x2 := FVP.dwX + FVP.dwWidth; |
y2 := FVP.dwY + FVP.dwHeight; |
end; |
FOwner.D3DDevice7.Clear(1, @r, dwFlags, color, z, stencil); |
end; |
//透視変換の設定 |
procedure TSXScene.SetProjection(fov, aspect, nearZ, farZ: Single); //透視変換の設定 |
var |
q, w, h: Single; |
begin |
q := farZ / (farZ - nearZ); |
w := aspect * Cos(fov * 0.5) / Sin(fov * 0.5); |
h := Cos(fov * 0.5) / Sin(fov * 0.5); |
FProjectionMatrix := D3DUtil_SetIdentityMatrix; |
FProjectionMatrix._11 := w; // |
FProjectionMatrix._22 := h; // |
FProjectionMatrix._33 := q; // Q = Zf / (Zf-Zn) |
FProjectionMatrix._34 := 1.0; |
FProjectionMatrix._43 := -q * nearZ; // -QZn |
FProjectionMatrix._44 := 0.0; |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_PROJECTION, FProjectionMatrix); |
end; |
procedure TSXScene.SetViewPort(left, top, right, bottom: DWord); |
begin |
ZeroMemory(@FVP, sizeof(FVP)); |
with FVP do |
begin |
dwX := left; |
dwY := top; |
dwWidth := right - left; |
dwHeight := bottom - top; |
dvMinZ := 0; |
dvMaxZ := 1.0; |
end; |
FOwner.D3DDevice7.SetViewport(FVP); |
end; |
//D3D解放(解像度変更)からのリカバリ |
procedure TSXScene.Recover; |
begin |
FOwner.D3DDevice7.SetViewport(FVP); |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_PROJECTION, FProjectionMatrix); |
end; |
//ビルボードを押し込む |
procedure TSXScene.PushBillboard(blendMode: TRenderType; ref: TSXFrame; |
pos: TD3DVector; points: array of TSXVertexBB; tex: TDirect3DTexture2); |
begin |
case blendMode of |
rtAdd: AddQueue.PushBillboard(ref, pos, tex, points); |
rtBlend: AlphaQueue.PushBillboard(ref, pos, tex, points); |
rtDraw: OpaqueQueue.PushBillboard(ref, pos, tex, points); |
rtSub: SubQueue.PushBillboard(ref, pos, tex, points); |
end; |
//フラグを立てる |
ref.BBAttached := True; |
end; |
//球体の可視判定 |
function TSXScene.SphereVisibility(ref: TSXFrame; pos: TD3DVector; |
radius: Single; depth: Single): Boolean; |
var |
viewM: TD3DMATRIX; //ref.posを視野座標系に変換する行列 |
projM: TD3DMATRIX; //透視変換行列(画角ゲット用) |
p: TD3DVector; |
fovH, fovV: Single; //画角 |
cosFovH, sinFovH, cosFovV, sinFovV: Single; |
begin |
//まず、視野座標系に変換する |
{$IFDEF USE_S_MATHPACK} |
viewM := NowCompositeMatrix(ref.WorldMatrix, NowInvMatrix(CameraFrame.WorldMatrix)); |
p := NowHeteroginize(NowTransform(NowHomoginize(pos), viewM)); |
{$ELSE} |
viewM := D3DMath_MatrixMultiply(ref.WorldMatrix, D3DMath_MatrixInvert(CameraFrame.WorldMatrix)); |
p := D3DMath_VecHeterogenize(D3DMath_VecTransform(D3DMath_VecHomogenize(pos), viewM)); |
{$ENDIF} |
//視界の後方や、depthより遠くにあるってのは論外 |
if (p.z < -radius) or (p.z > depth + radius) then |
begin |
Result := False; |
Exit; |
end; |
//縦・横の画角を求める |
FOwner.D3DDevice7.GetTransform(D3DTRANSFORMSTATE_PROJECTION, projM); |
fovH := ArcTan(1.0 / projM._11); |
fovV := ArcTan(1.0 / projM._22); |
//画角のSin,Cosを出しておく |
SinFovH := Sin(fovH); CosFovH := Cos(fovH); |
SinFovV := Sin(fovV); CosFovV := Cos(fovV); |
//XZ平面での判定…画角分だけ球の中心を回転させた時、コーンの中心から球の中心までが、球の半径の値以下になるかを見る |
if ((p.x * CosFovH - p.z * SinFovH) > radius) or ((p.x * CosFovH + p.z * SinFovH) < -radius) then |
begin |
Result := False; |
Exit; |
end; |
//YZ平面での判定 |
if ((p.y * CosfovV - p.z * SinfovV) > radius) or ((p.y * CosfovV + p.z * SinfovV) < -radius) then |
begin |
Result := False; |
Exit; |
end; |
Result := True; |
end; |
{ TSXLight } |
constructor TSXLight.Create(DDCompo: TDXDraw; index: DWord); |
begin |
inherited Create; |
FOwner := DDCompo; |
FIndex := index; |
FEnabled := False; |
FUpdate := True; |
//デフォ値の設定 |
ZeroMemory(@Params, Sizeof(Params)); |
with Params do |
begin |
dltType := D3DLIGHT_DIRECTIONAL; |
dcvDiffuse.r := 1.0; |
dcvDiffuse.g := 1.0; |
dcvDiffuse.b := 1.0; |
{$IFDEF USE_S_MATHPACK} |
dvDirection := Vector(0, 0, 1); |
{$ELSE} |
dvDirection := MakeD3DVector(0, 0, 1); |
{$ENDIF} |
end; |
end; |
destructor TSXLight.Destroy; |
begin |
inherited; |
end; |
//D3Dにライトを登録 |
procedure TSXLight.SetEnabled(const Value: Boolean); |
begin |
FEnabled := Value; |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
FOwner.D3DDevice7.LightEnable(FIndex, FEnabled); |
end; |
//お便利るーちんず |
procedure TSXLight.SetupDiffuse(_R, _G, _B: Single); |
begin |
with Params.dcvDiffuse do |
begin |
dvR := _R; |
dvG := _G; |
dvB := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupSpecular(_R, _G, _B: Single); |
begin |
with Params.dcvSpecular do |
begin |
dvR := _R; |
dvG := _G; |
dvB := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupAmbient(_R, _G, _B: Single); |
begin |
with Params.dcvAmbient do |
begin |
dvR := _R; |
dvG := _G; |
dvB := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupColors(difR, difG, difB, specR, specG, specB, ambR, |
ambG, ambB: Single); |
begin |
with Params.dcvDiffuse do |
begin |
dvR := difR; |
dvG := difG; |
dvB := difB; |
end; |
with Params.dcvSpecular do |
begin |
dvR := specR; |
dvG := specG; |
dvB := specB; |
end; |
with Params.dcvAmbient do |
begin |
dvR := ambR; |
dvG := ambG; |
dvB := ambB; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupRanges(range, att0, att1, att2: Single); |
begin |
with Params do |
begin |
dvRange := range; |
dvAttenuation0 := att0; |
dvAttenuation1 := att1; |
dvAttenuation2 := att2; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupDirectional(dir: TD3DVector); |
begin |
Params.dltType := D3DLIGHT_DIRECTIONAL; |
Params.dvDirection := dir; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupPoint(pos: TD3DVector); |
begin |
Params.dltType := D3DLIGHT_POINT; |
Params.dvPosition := pos; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupSpot(pos, dir: TD3DVector; theta, phi, |
falloff: Single); |
begin |
Params.dltType := D3DLIGHT_SPOT; |
Params.dvDirection := dir; |
Params.dvTheta := theta; |
Params.dvPhi := phi; |
Params.dvFalloff := falloff; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
//フレームの位置・向きにセット |
procedure TSXLight.FitFrame(target: TSXFrame); |
var |
mat: TD3DMATRIX; |
begin |
if target = nil then |
mat := D3DUtil_SetIdentityMatrix |
else |
mat := target.WorldMatrix; |
{$IFDEF USE_S_MATHPACK} |
Params.dvDirection := Vector(mat._31, mat._32, mat._33); |
Params.dvPosition := Vector(mat._41, mat._42, mat._43); |
{$ELSE} |
Params.dvDirection := MakeD3DVector(mat._31, mat._32, mat._33); |
Params.dvPosition := MakeD3DVector(mat._41, mat._42, mat._43); |
{$ENDIF} |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.BeginUpdate; |
begin |
FUpdate := False; |
end; |
procedure TSXLight.EndUpdate; |
begin |
FUpdate := True; |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
{ TSXLightGroup } |
constructor TSXLightGroup.Create(DDCompo: TDXDraw; capacity: DWord); |
var |
i: Integer; |
begin |
inherited Create; |
FOwner := DDCompo; |
FCapacity := capacity; |
SetLength(FLights, capacity); |
for i := 0 to capacity - 1 do |
begin |
FLights[i] := TSXLight.Create(FOwner, i); |
end; |
end; |
destructor TSXLightGroup.Destroy; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
FLights[i].Free; |
end; |
FLights := nil; |
inherited; |
end; |
procedure TSXLightGroup.DisableAll; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
FLights[i].Enabled := True; |
end; |
end; |
procedure TSXLightGroup.EnableAll; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
FLights[i].Enabled := False; |
end; |
end; |
function TSXLightGroup.GetLights(idx: DWord): TSXLight; |
begin |
//範囲チェック |
if idx >= FCapacity then |
begin |
//DDDD_PutDebugMessage('TSXLightGroup @ SXLib: 範囲外のライトを参照しようとしました'); |
result := nil; |
exit; |
end; |
result := FLights[idx]; |
end; |
//Enabledじゃないライトを探索 |
function TSXLightGroup.GetUnusedLight: TSXLight; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
if not FLights[i].Enabled then |
begin |
result := FLights[i]; |
exit; |
end; |
end; |
result := nil; |
end; |
//スペキュラ強度の設定 |
{ |
procedure TSXLightGroup.SetSpecularPower(const Value: Single); |
var |
mtrl:D3DMATERIAL7; |
begin |
FSpecularPower := Value; |
ZeroMemory(@mtrl, Sizeof(mtrl)); |
mtrl.power:=FSpecularPower; |
FOwner.D3DDevice.SetMaterial(@mtrl); |
end; |
} |
procedure TSXLightGroup.Recover; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
if FLights[i].Enabled then |
FLights[i].Enabled := True; |
end; |
// SpecularPower:=FSpecularPower; |
end; |
{ TSXMatetial } |
constructor TSXMaterial.Create(DDCompo: TDXDraw); |
begin |
ZeroMemory(@Params, Sizeof(Params)); |
FOwner := DDCompo; |
FUpdate := True; |
end; |
procedure TSXMaterial.SetupAmbient(_R, _G, _B: Single); |
begin |
with Params.dcvAmbient do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupDiffuse(_R, _G, _B: Single); |
begin |
with Params.dcvDiffuse do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupEmissive(_R, _G, _B: Single); |
begin |
with Params.dcvEmissive do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupSpecular(_R, _G, _B: Single); |
begin |
with Params.dcvSpecular do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupSpecularPower(pow: Single); |
begin |
with Params do |
begin |
dvPower := pow; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupColors(difR, difG, difB, specR, specG, specB, |
ambR, ambG, ambB, emsR, emsG, emsB, pow: Single); |
begin |
with Params.dcvDiffuse do |
begin |
dvR := difR; |
dvG := difG; |
dvB := difB; |
end; |
with Params.dcvSpecular do |
begin |
dvR := specR; |
dvG := specG; |
dvB := specB; |
end; |
with Params.dcvAmbient do |
begin |
dvR := ambR; |
dvG := ambG; |
dvB := ambB; |
end; |
with Params.dcvEmissive do |
begin |
dvR := emsR; |
dvG := emsG; |
dvB := emsB; |
end; |
Params.dvPower := pow; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.BeginUpdate; |
begin |
FUpdate := False; |
end; |
procedure TSXMaterial.EndUpdate; |
begin |
FUpdate := True; |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
{ ヘルパー関数 } |
function MakeMaterial(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB, emsR, emsG, emsB, pow: Single): TD3DMATERIAL7; |
begin |
with Result.dcvDiffuse do |
begin |
dvR := difR; |
dvG := difG; |
dvB := difB; |
dvA := 1.0; |
end; |
with Result.dcvSpecular do |
begin |
dvR := specR; |
dvG := specG; |
dvB := specB; |
dvA := 1.0; |
end; |
with Result.dcvAmbient do |
begin |
dvR := ambR; |
dvG := ambG; |
dvB := ambB; |
dvA := 1.0; |
end; |
with Result.dcvEmissive do |
begin |
dvR := emsR; |
dvG := emsG; |
dvB := emsB; |
dvA := 1.0; |
end; |
Result.dvPower := pow; |
end; |
{ TSXRenderingQueue } |
//コンストラクタ |
constructor TSXRenderingQueue.Create(AOwner: TDXDraw; _Scene: TSXScene); |
begin |
inherited create; |
FOwner := AOwner; |
Scene := _Scene; |
//デフォ値の代入 |
BillboardCapacity := 32; |
MeshCapacity := 32; |
FBillboardCount := 0; |
FMeshCount := 0; |
end; |
//デストラクタ |
destructor TSXRenderingQueue.Destroy; |
begin |
BillboardQueue := nil; |
MeshQueue := nil; |
inherited; |
end; |
//何もせずに、中身だけ消す |
procedure TSXRenderingQueue.Flush; |
begin |
FBillboardCount := 0; |
FMeshCount := 0; |
end; |
//ビルボードを入れる |
procedure TSXRenderingQueue.PushBillboard(ref: TSXFrame; pos: TD3DVector; |
tex: TDirect3DTexture2; pts: array of TSXVertexBB); //ビルボード |
begin |
//必要なら拡張する |
if BillboardCount >= BillboardCapacity then |
BillboardCapacity := BillboardCapacity * 2; |
BillboardQueue[FBillboardCount].tex := tex; |
BillboardQueue[FBillboardCount].ref := ref; |
BillboardQueue[FBillboardCount].pos := pos; |
Move(pts, BillboardQueue[FBillboardCount].Pts, Sizeof(TSXVertexBB) * 4); //4頂点分コピー |
Inc(FBillboardCount); |
end; |
//メッシュを入れる |
procedure TSXRenderingQueue.PushMesh(mesh: TSXMesh; frame: TSXFrame; mat: TD3DMatrix; |
tex: TDirect3DTexture2; mtrl: TD3DMATERIAL7; event: TSXRenderMeshEvent); |
begin |
//必要なら拡張する |
if MeshCount >= MeshCapacity then |
MeshCapacity := MeshCapacity * 2; |
MeshQueue[FmeshCount].mat := mat; |
MeshQueue[FmeshCount].mesh := mesh; |
MeshQueue[FmeshCount].mtrl := mtrl; |
MeshQueue[FmeshCount].tex := tex; |
MeshQueue[FmeshCount].OnRender := event; |
MeshQueue[FMeshCount].frame := frame; |
Inc(FMeshCount); |
end; |
//ビルボード用の情報入れをサイズを変える |
procedure TSXRenderingQueue.SetBillBoardCapacity(const Value: Integer); |
begin |
FBillboardCapacity := Value; |
SetLength(BillboardQueue, Value); |
end; |
//メッシュ用の情報入れをサイズを変える |
procedure TSXRenderingQueue.SetMeshCapacity(const Value: Integer); |
begin |
FMeshCapacity := Value; |
SetLength(MeshQueue, Value); |
end; |
//描画 |
procedure TSXRenderingQueue.Render(viewMat: TD3DMATRIX; viewParam: TD3DVIEWPORT7); |
var |
i, j: Integer; |
prevTex: TDirect3DTexture2; //前回使ったテクスチャへの参照 //With reference to the previous texture |
prevSpec: Boolean; //前回描画したものは、スペキュラを計算したか //The last drawing was either calculated specular |
prevLit: Boolean; //前回描画したものは、ライティングの計算をしたか //Was drawn last, or the lighting calculations |
prevFrame: TSXFrame; //直前に描画したビルボードの入ってたフレーム //I was drawn into the frame just before the billboard |
center: {$IFDEF USE_S_MATHPACK}THgVector{$ELSE}TD3DHVector{$ENDIF}; |
pts: array[0..3] of TD3DTLVERTEX; |
m: TD3DMATRIX; |
projM, screenM, viewProjScreenM: TD3DMATRIX; |
begin |
//メッシュの描画 |
prevTex := nil; |
FOwner.D3DDevice7.SetTexture(0, nil); |
prevSpec := True; |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SPECULARENABLE, DWord(True)); |
prevLit := True; |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_LIGHTING, DWord(True)); |
for i := 0 to MeshCount - 1 do |
begin |
//ライティング |
if prevLit <> MeshQueue[i].Frame.Lighting then |
begin |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_LIGHTING, DWord(MeshQueue[i].Frame.Lighting)); |
prevLit := MeshQueue[i].Frame.Lighting; |
end; |
//スペキュラつける? |
if prevSpec <> MeshQueue[i].Frame.Specular then |
begin |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SPECULARENABLE, DWord(MeshQueue[i].Frame.Specular)); |
prevSpec := MeshQueue[i].Frame.Specular; |
end; |
//行列の設定 |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_WORLD, (MeshQueue[i].mat)); |
//マテリアルの設定 |
FOwner.D3DDevice7.SetMaterial((MeshQueue[i].Mtrl)); |
//テクスチャがあるなら、貼り付ける。 |
if MeshQueue[i].tex <> prevTex then |
begin |
if MeshQueue[i].tex <> nil then |
FOwner.D3DDevice7.SetTexture(0, MeshQueue[i].tex.Surface.IDDSurface7) |
else |
FOwner.D3DDevice7.SetTexture(0, nil); |
end; |
prevTex := MeshQueue[i].tex; |
//イベントハンドラを呼ぶ |
if Assigned(MeshQueue[i].OnRender) then |
MeshQueue[i].OnRender(MeshQueue[i].Frame); |
//描画 |
MeshQueue[i].Mesh.Draw(0); |
end; |
//ビルボードの描画 |
//ライティングを切る |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_LIGHTING, DWord(False)); |
FOwner.D3DDevice7.GetTransform(D3DTRANSFORMSTATE_PROJECTION, projM); |
ScreenM := D3DUtil_SetIdentityMatrix; |
with ScreenM do |
begin |
_11 := viewParam.dwWidth / 2.0; |
_22 := -(viewParam.dwHeight / 2.0); |
_33 := viewParam.dvMaxZ - viewParam.dvMinZ; |
_41 := viewParam.dwX + viewParam.dwWidth / 2.0; |
_42 := viewParam.dwY + viewParam.dwHeight / 2.0; |
_43 := viewParam.dvMinZ; |
end; |
//視野座標→画面 の変換行列 |
{$IFDEF USE_S_MATHPACK} |
viewProjScreenM := NowCompositeMatrix(viewMat, projM); |
viewProjScreenM := NowCompositeMatrix(viewProjScreenM, ScreenM); |
{$ELSE} |
viewProjScreenM := D3DMath_MatrixMultiply(viewMat, projM); |
viewProjScreenM := D3DMath_MatrixMultiply(viewProjScreenM, ScreenM); |
{$ENDIF} |
prevFrame := nil; |
for i := 0 to BillboardCount - 1 do |
begin |
if BillboardQueue[i].ref <> nil then |
begin |
//テクスチャがあるなら、貼り付ける。 |
if BillboardQueue[i].Tex <> prevTex then |
begin |
if BillboardQueue[i].Tex <> nil then |
FOwner.D3DDevice7.SetTexture(0, BillboardQueue[i].Tex.Surface.IDDSurface7) |
else |
FOwner.D3DDevice7.SetTexture(0, nil); |
end; |
prevTex := BillboardQueue[i].Tex; |
//ビルボードの中心の視野座標を求める |
if prevFrame <> BillboardQueue[i].ref then |
begin |
{$IFDEF USE_S_MATHPACK} |
m := NowCompositeMatrix(BillboardQueue[i].ref.RenderedMatrix, viewProjScreenM); |
{$ELSE} |
m := D3DMath_MatrixMultiply(BillboardQueue[i].ref.RenderedMatrix, viewProjScreenM); |
{$ENDIF} |
prevFrame := BillboardQueue[i].ref; |
end; |
{$IFDEF USE_S_MATHPACK} |
center := NowHomoginize(BillboardQueue[i].pos); |
center := NowTransform(center, m); |
{$ELSE} |
center := D3DMath_VecHomogenize(BillboardQueue[i].pos); |
center := D3DMath_VecTransform(center, m); |
{$ENDIF} |
//W値が正なら描画 |
//W is positive if the drawing |
if center.W > 0 then |
begin |
//ビルボードの中心の画面での座標を求める |
//Find the coordinates of the center of the screen, billboard |
{$IFDEF USE_S_MATHPACK} |
center := NowViewFrustumToScreen(center); |
{$ELSE} |
center := D3DMath_VecViewScreenize(center); |
{$ENDIF} |
for j := 0 to 3 do |
begin |
with BillboardQueue[i].Pts[j] do |
begin |
Pts[j].sx := center.x + BillboardQueue[i].Pts[j].dx * center.W; |
Pts[j].sy := center.y + BillboardQueue[i].Pts[j].dy * center.W; |
Pts[j].sz := center.z; |
Pts[j].rhw := center.w; |
Pts[j].color := color; |
Pts[j].specular := $FF000000; |
Pts[j].tu := tu; |
Pts[j].tv := tv; |
end; |
end; |
FOwner.D3DDevice7.DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, Pts, 4, 0); |
end; |
//参照フレームに付いたフラグを消す |
BillboardQueue[i].ref.BBAttached := False; |
end; |
end; |
//キューを空に |
FMeshCount := 0; |
FBillBoardCount := 0; |
end; |
{-------------------------------- Primitive Renderer --------------------------} |
type |
TIntArray = array[0..$0FFFFFFF] of Integer; |
PIntArray = ^TIntArray; |
TPrimArray = array[0..$FFFFF] of TSXPrimitiveRec; |
PPrimArray = ^TPrimArray; |
TTextureCoordArray = array[0..$FFFFF] of TSXTextureCoordRec; |
PTextureCoordArray = ^TTextureCoordArray; |
class function TSXPrimitiveRenderer.SingleRect(x1, y1, x2, y2: Single): TSingleRect; |
begin |
with result do |
begin |
Left := x1; |
Top := y1; |
Right := x2; |
Bottom := y2; |
end; |
end; |
constructor TSXPrimitiveRenderer.Create(DDCompo: TDXDraw; PrimitiveCount: Integer; PatternCount: Integer); |
begin |
FDXDraw := DDCompo; |
FMaxPrimitives := PrimitiveCount; |
ZSortBuf := nil; |
ZSortCount := nil; |
PrimCount := 0; |
GetMem(PrimBuf, Sizeof(TSXPrimitiveRec) * PrimitiveCount); |
GetMem(Patterns, Sizeof(TSXTextureCoordRec) * PatternCount); |
ZMax := 0; |
ColorKey := True; |
end; |
destructor TSXPrimitiveRenderer.Destroy; |
begin |
FreeMem(ZSortBuf); |
FreeMem(ZSortCount); |
FreeMem(Patterns); |
FreeMem(PrimBuf); |
inherited; |
end; |
procedure TSXPrimitiveRenderer.setZMax(v: Integer); |
begin |
FZmax := v; |
if ZSortBuf <> nil then |
FreeMem(ZSortBuf); |
if ZSortCount <> nil then |
FreeMem(ZSortCount); |
GetMem(ZSortBuf, (FZMax + 1) * FMaxPrimitives * sizeof(Integer)); |
GetMem(ZSortCount, (FZMax + 1) * sizeof(Integer)); |
end; |
//パターンとしてTexのCoordで示される範囲を登録 |
procedure TSXPrimitiveRenderer.SetPattern(idx: Integer; Tex: TDirect3DTexture2; Coord: TRect); |
var |
pPat: PTextureCoord; |
begin |
pPat := @(PTextureCoordArray(Patterns)^[idx]); |
with pPat^ do |
begin |
Texture := Tex; |
Top := Coord.Top / Tex.Height; |
Left := Coord.Left / Tex.Width; |
Bottom := Coord.Bottom / Tex.Height; |
Right := Coord.Right / Tex.Width; |
end; |
end; |
procedure TSXPrimitiveRenderer.Push(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD3DTLVertex; Z: Integer; blend: TRenderType); //TLVertexで四角形を入れる |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
Texture := Tex; |
Bound[0] := p1; |
Bound[1] := p2; |
Bound[2] := p3; |
Bound[3] := p4; |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
procedure TSXPrimitiveRenderer.Push2D(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //2D的な四角形 |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
Texture := Tex; |
Bound[0] := MakeD3DTLVertex(p1.x, p1.y, 2.0, 0.5, col, 0, 0, 0); |
Bound[1] := MakeD3DTLVertex(p2.x, p2.y, 2.0, 0.5, col, 0, 1, 0); |
Bound[2] := MakeD3DTLVertex(p3.x, p3.y, 2.0, 0.5, col, 0, 0, 1); |
Bound[3] := MakeD3DTLVertex(p4.x, p4.y, 2.0, 0.5, col, 0, 1, 1); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
//パターンをプッシュ(3次元) |
procedure TSXPrimitiveRenderer.PushPattern(iPat: Integer; p1, p2, p3, p4: TD3DHVector; Z: Integer; blend: TRenderType; col: DWord); |
var |
pPat: PTextureCoord; |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
pPat := @(PTextureCoordArray(Patterns)^[iPat]); |
Texture := pPat^.Texture; |
Bound[0] := MakeD3DTLVertex(p1.x, p1.y, p1.z, p1.w, col, 0, pPat^.Left, pPat^.Top); |
Bound[1] := MakeD3DTLVertex(p2.x, p2.y, p2.z, p2.w, col, 0, pPat^.Right, pPat^.Top); |
Bound[2] := MakeD3DTLVertex(p3.x, p3.y, p3.z, p3.w, col, 0, pPat^.Left, pPat^.Bottom); |
Bound[3] := MakeD3DTLVertex(p4.x, p4.y, p4.z, p4.w, col, 0, pPat^.Right, pPat^.Bottom); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
procedure TSXPrimitiveRenderer.PushPattern2D(iPat: Integer; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュする |
var |
pPat: PTextureCoord; |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
pPat := @(PTextureCoordArray(Patterns)^[iPat]); |
Texture := pPat^.Texture; |
Bound[0] := MakeD3DTLVertex(p1.x, p1.y, 2, 0.5, col, 0, pPat^.Left, pPat^.Top); |
Bound[1] := MakeD3DTLVertex(p2.x, p2.y, 2, 0.5, col, 0, pPat^.Right, pPat^.Top); |
Bound[2] := MakeD3DTLVertex(p3.x, p3.y, 2, 0.5, col, 0, pPat^.Left, pPat^.Bottom); |
Bound[3] := MakeD3DTLVertex(p4.x, p4.y, 2, 0.5, col, 0, pPat^.Right, pPat^.Bottom); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
//パターンをプッシュする(矩形) |
procedure TSXPrimitiveRenderer.PushPatternRect(iPat: Integer; rect: TSingleRect; Z: Integer; blend: TRenderType; col: DWord); |
var |
pPat: PTextureCoord; |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
pPat := @(PTextureCoordArray(Patterns)^[iPat]); |
Texture := pPat^.Texture; |
Bound[0] := MakeD3DTLVertex(rect.Left, rect.Top, 2, 0.5, col, 0, pPat^.Left, pPat^.Top); |
Bound[1] := MakeD3DTLVertex(rect.Right, rect.Top, 2, 0.5, col, 0, pPat^.Right, pPat^.Top); |
Bound[2] := MakeD3DTLVertex(rect.Left, rect.Bottom, 2, 0.5, col, 0, pPat^.Left, pPat^.Bottom); |
Bound[3] := MakeD3DTLVertex(rect.Right, rect.Bottom, 2, 0.5, col, 0, pPat^.Right, pPat^.Bottom); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
//Z値にしたがってソート |
procedure TSXPrimitiveRenderer.BeginRender; |
var |
i: Integer; |
pCount: ^Integer; //各レイヤに、いくつ物体があるか |
pSort: ^Integer; |
pPrim: PPrimitive; |
begin |
FNPrims := PrimCount; |
//FSortCountのクリア |
pCount := Pointer(ZSortCount); |
ZeroMemory(pCount, Sizeof(Integer) * (FZMax + 1)); |
if PrimCount = 0 then |
Exit; |
//ビンソート |
pPrim := @(PPrimArray(PrimBuf)^[PrimCount - 1]); |
for i := PrimCount - 1 downto 0 do |
begin |
pSort := Pointer(ZSortBuf); |
pCount := Pointer(ZSortCount); |
if pPrim^.ZOrder > FZMax then |
begin |
//DDDD_PutDebugMessage(Format('Primitives: Z=%dは無効です、Z値は0から%dの範囲にしてください',[pPrim^.ZOrder,FZMax])); |
continue; |
end; |
Inc(pCount, pPrim^.ZOrder); |
Inc(pSort, pPrim^.ZOrder * FMaxPrimitives + pCount^); |
pSort^ := i; //FSortBuf[z][FSortCount[z]]:=i |
Inc(pCount^); //FSortCount[z]++ |
Dec(pPrim); |
end; |
end; |
//単一のZ値を持つ集合だけ描画 |
procedure TSXPrimitiveRenderer.RenderOneLayer(Z: Integer); |
var |
i: Integer; |
pSort: ^Integer; |
pPrim: PPrimitive; |
prevTexture: TDirect3DTexture2; |
prevBlendMode: TRenderType; |
nPrims: Integer; |
begin |
asm |
finit; |
end; |
if Z > FZMax then |
begin |
//DDDD_PutDebugMessage(Format('Render: Z=%dは無効です、Z値は0から%dの範囲にしてください',[Z,FZMax])); |
exit; |
end; |
nPrims := PIntArray(ZSortCount)^[Z]; |
if nPrims = 0 then |
Exit; |
//レンダリングステートの設定 |
with FDXDraw.D3DDevice7 do |
begin |
SetTexture(0, nil); |
SetRenderState(D3DRENDERSTATE_ZENABLE, INteger(False)); |
SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, INteger(False)); |
//SetTextureStageState(0, D3DTSS_MAGFILTER, Integer(D3DTFG_POINT)); |
//SetTextureStageState(0, D3DTSS_MINFILTER, Integer(D3DTFG_POINT)); |
SetTextureStageState(0, D3DTSS_MAGFILTER, Integer(D3DTFG_LINEAR)); |
SetTextureStageState(0, D3DTSS_MINFILTER, Integer(D3DTFG_LINEAR)); |
SetRenderState(D3DRENDERSTATE_STIPPLEDALPHA, Integer(False)); |
SetRenderState(D3DRENDERSTATE_DITHERENABLE, Integer(False)); |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(False)); |
SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Integer(ColorKey)); |
end; |
prevTexture := nil; |
prevBlendMode := rtDraw; |
pSort := @(PIntArray(ZSortBuf)^[FMaxPrimitives * Z]); |
for i := 0 to nPrims - 1 do |
begin |
pPrim := @(PPrimArray(PrimBuf)^[pSort^]); |
//テクスチャの変更 |
if pPrim^.Texture <> prevTexture then |
begin |
if pPrim^.Texture = nil then |
FDXDraw.D3DDevice7.SetTexture(0, nil) |
else |
FDXDraw.D3DDevice7.SetTexture(0, pPrim^.Texture.Surface.IDDSurface7); |
prevTexture := pPrim^.Texture; |
end; |
//ブレンドモードの設定 |
if pPrim^.BlendMode <> prevBlendMode then |
begin |
case pPrim^.BlendMode of |
rtDraw: |
begin |
//QD.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(False)); |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0); |
//QD.D3DDevice7.SetRenderState(D3DRENDERSTATE_FILLMODE, Integer(D3DFILL_SOLID)); |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Integer(True)); |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ONE)); |
end; |
rtAdd: |
begin |
if prevBlendMode = rtDraw then |
begin |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(True)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ONE)); // ソースブレンド設定 |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_ONE)); // ディスティネーション設定 |
end; |
rtBlend: |
begin |
if prevBlendMode = rtDraw then |
begin |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(True)); //αを有効に☆ |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_SRCALPHA)); // ソースブレンド設定 |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_INVSRCALPHA)); // ディスティネーション設定 |
end; |
rtSub: |
begin |
if prevBlendMode = rtDraw then |
begin |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(True)); //αを有効に☆ |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_DESTCOLOR)); // ソースブレンド設定 |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_ZERO)); // ディスティネーション設定 |
end; |
end; |
prevBlendMode := pPrim^.BlendMode; |
end; |
try |
asm |
finit; |
end; |
FDXDraw.D3DDevice7.DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, pPrim^.Bound, 4, 0); |
asm |
finit; |
end; |
Inc(pSort); |
except |
//DDDD_PutDebugMessage('FP Fault'); |
Halt; |
end; |
end; |
end; |
//スタックを空に |
procedure TSXPrimitiveRenderer.EndRender; |
begin |
PrimCount := 0; |
end; |
//全部描画 |
procedure TSXPrimitiveRenderer.Render; |
var |
i: Integer; |
begin |
BeginRender; |
for i := 0 to FZMax do |
RenderOneLayer(i); |
EndRender; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXEngine.pas |
---|
24,7 → 24,7 |
Ivan Blecic |
} |
unit SXEngine; |
{$WARN SYMBOL_PLATFORM OFF} |
interface |
uses |
/VCL_DELPHIX_D6/SXMedia/SXModPlayer.pas |
---|
277,7 → 277,7 |
S1,S2:Integer; |
{$ENDIF} |
NumWrite:Longint; |
Pos:Integer; |
Pos:{$IFDEF UNICODE}Cardinal{$ELSE}Integer{$ENDIF}; |
Written1:Integer; |
begin |
if Event = 0 then |
287,7 → 287,7 |
NumWrite := TDSBPositionNotify(Notify[Event]^).dwOffset - Pos; |
if (NumWrite < 0) then |
inc(NumWrite,BufferDesc.dwBufferBytes); |
if SoundBuffer.IBuffer.Lock(Pos,NumWrite,w1,{$IFDEF UNICODE}@{$ENDIF}s1,Pointer(nil^),{$IFDEF UNICODE}@{$ENDIF}s2,0) = 0 then |
if SoundBuffer.IBuffer.Lock(Pos,NumWrite,w1,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s1,Pointer(nil^),{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s2,0) = 0 then |
begin |
Written1 := ModMixer.Render(W1,S1); |
SoundBuffer.IBuffer.Unlock(w1,Written1, nil,0); |
344,7 → 344,7 |
function TSXModPlayer.CreateSoundNotify : IDirectSoundNotify; |
type TNotifyArray = Array[0..99] of TDSBPositionNotify; |
var PDSNotify : PDSBPositionNotify; |
index : Integer; Offset: Integer; |
index : Integer; Offset: {$IFDEF UNICODE}DWORD{$ELSE}Integer{$ENDIF}; |
PNotify: ^TNotifyArray; |
begin |
Result := nil; |
361,10 → 361,10 |
Notify.Add(PDSNotify); |
Events.Add(Pointer(PDSNotify^.hEventNotify)); |
PNotify[Index-1] := PDSNotify^; |
inc(Offset,WaveFormat.nAvgBytesPerSec div EVENTCOUNT); |
Inc(Offset, WaveFormat.nAvgBytesPerSec div {$IFDEF UNICODE}DWORD{$ELSE}Integer{$ENDIF}(EVENTCOUNT)); |
end; |
if Result.SetNotificationPositions(EVENTCOUNT,{$IFDEF UNICODE}@{$ENDIF}PNotify[0]) <> 0 then |
if Result.SetNotificationPositions(EVENTCOUNT,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}PNotify[0]) <> 0 then |
ShowMessage('Notification Falied'); |
FreeMem(PNotify,EVENTCOUNT * Sizeof(TDSBPositionNotify)); |
end; |
404,7 → 404,7 |
Data:Word; |
begin |
Data := GetSilenceData; |
if SoundBuffer.IBuffer.Lock(0,0,w1,{$IFDEF UNICODE}@{$ENDIF}s1,w2,{$IFDEF UNICODE}@{$ENDIF}s2,DSBLOCK_ENTIREBUFFER) = 0 then |
if SoundBuffer.IBuffer.Lock(0,0,w1,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s1,w2,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s2,DSBLOCK_ENTIREBUFFER) = 0 then |
begin |
FillMemory(W1,S1,Data); |
if W2 <> nil then |
490,7 → 490,7 |
end; |
end; |
procedure TSXModPlayer.SetOptions( const Value : TModOptions ); |
const OptionArray: array[Boolean,TModOption] of Integer = ( |
const OptionArray: array[Boolean,TModOption] of DWord = ( |
(0,0,0,0,0,0,0), |
(MPPMIX_NORESAMPLING, MPPMIX_BASSEXPANSION, MPPMIX_SURROUND, |
MPPMIX_REVERB, MPPMIX_HIGHQUALITY, MPPMIX_GAINCONTROL, |
/VCL_DELPHIX_D6/SXMedia/SXMovie.pas |
---|
63,7 → 63,7 |
procedure SetBottom(Value: integer); |
protected |
public |
procedure Assign(Value: TScreenRect); |
procedure Assign(Value: TScreenRect); reintroduce; |
published |
property Left: integer read FLeft write SetLeft; |
property Right: integer read FRight write SetRight; |
254,7 → 254,7 |
procedure TSXMovie.CreateMediaStream; |
var |
wPath:{$IFDEF UNICODE}array of Char{$ELSE}array[0..MAX_PATH] of WChar{$ELSE}{$ENDIF}; |
wPath:{$IFDEF UNICODE}string{$ELSE}array[0..MAX_PATH] of WChar{$ENDIF}; |
AMStream:IAMMultiMediaStream; |
Media:IMediaStream; |
begin |
263,16 → 263,15 |
try |
CoCreateinstance(CLSID_AMMULTIMEDIASTREAM,nil,CLSCTX_INPROC_SERVER,IID_IAMMULTIMEDIASTREAM,AMStream); |
{$IFDEF UNICODE} |
SetLength(wPath, Length(Filename) + 1); |
StrPCopy(@wPath, Filename); |
wPath := Filename; |
{$ELSE} |
MultiByteToWideChar(CP_ACP,0,PAnsiChar(Filename),-1,wPath,Sizeof(wPAth) div sizeof(wPath[0])); |
{$ENDIF} |
AMStream.Initialize(STREAMTYPE_READ,AMMSF_NOGRAPHTHREAD,nil); |
if (DXSound <> nil) and (DXSound.DSound <> nil) and (DXSound.DSound.ISound <> nil) then |
AMStream.AddMediaStream(DXSound.DSound.ISound,{$IFDEF UNICODE}@{$ENDIF}MSPID_PrimaryAudio,AMMSF_ADDDEFAULTRENDERER,IMediaStream(nil^)); |
AMStream.AddMediaStream(DXDraw.DDraw.IDraw,{$IFDEF UNICODE}@{$ENDIF}MSPID_PrimaryVideo,0,Media); |
AMStream.OpenFile({$IFDEF UNICODE}@{$ENDIF}wPAth,0); |
AMStream.AddMediaStream(DXSound.DSound.ISound,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}MSPID_PrimaryAudio,AMMSF_ADDDEFAULTRENDERER,IMediaStream(nil^)); |
AMStream.AddMediaStream(DXDraw.DDraw.IDraw,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}MSPID_PrimaryVideo,0,Media); |
AMStream.OpenFile({$IFDEF UNICODE}@wPAth[1]{$ELSE}wPAth{$ENDIF},0); |
FMMStream := AMStream; |
except |
FMMStream := nil; |
/VCL_DELPHIX_D6/SXMedia/SxSample/SXMedia.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/SXMedia/SxSample/main.dfm |
---|
24,7 → 24,6 |
AutoInitialize = True |
AutoSize = True |
Color = clBtnFace |
Display.BitCount = 16 |
Display.FixedBitCount = True |
Display.FixedRatio = True |
Display.FixedSize = False |
33,6 → 32,7 |
SurfaceWidth = 536 |
Align = alClient |
TabOrder = 0 |
Traces = <> |
end |
object MainMenu1: TMainMenu |
Left = 398 |
123,6 → 123,39 |
end |
object DXImageList1: TDXImageList |
DXDraw = DXDraw1 |
Items.ColorTable = { |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000} |
Items = < |
item |
Name = 'logo_n.bmp' |
/VCL_DELPHIX_D6/SXMedia/SxSample/main.pas |
---|
26,7 → 26,7 |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DirectX, |
SXMovie, SXModPlayer, SXEngine, Menus, DXSounds, DXDraws, MMSystem, DIB; |
type |