Browse Source

+ True Color fixes in GetScanlineDefault (returns 32 bits per pixel, but only in modes with >16bit color)

git-svn-id: trunk@40866 -
nickysn 6 years ago
parent
commit
b68567f1d9
1 changed files with 16 additions and 2 deletions
  1. 16 2
      packages/graph/src/inc/graph.inc

+ 16 - 2
packages/graph/src/inc/graph.inc

@@ -52,6 +52,10 @@ type
 
 
   WordArray = Array [0..StdbufferSize] Of word;
   WordArray = Array [0..StdbufferSize] Of word;
   PWordArray = ^WordArray;
   PWordArray = ^WordArray;
+{$ifdef FPC_GRAPH_SUPPORTS_TRUECOLOR}
+  LongWordArray = Array [0..StdbufferSize] Of LongWord;
+  PLongWordArray = ^LongWordArray;
+{$endif FPC_GRAPH_SUPPORTS_TRUECOLOR}
 
 
 
 
 const
 const
@@ -1115,8 +1119,18 @@ end;
   Var
   Var
     x : smallint;
     x : smallint;
   Begin
   Begin
-     For x:=X1 to X2 Do
-       WordArray(Data)[x-x1]:=GetPixel(x, y);
+{$ifdef FPC_GRAPH_SUPPORTS_TRUECOLOR}
+    if MaxColor > 65536 then
+    begin
+      For x:=X1 to X2 Do
+        LongWordArray(Data)[x-x1]:=GetPixel(x, y);
+    end
+    else
+{$endif FPC_GRAPH_SUPPORTS_TRUECOLOR}
+    begin
+      For x:=X1 to X2 Do
+        WordArray(Data)[x-x1]:=GetPixel(x, y);
+    end;
   End;
   End;