Hänge im BGRABitmap Tutorial[gelöst]

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Hänge im BGRABitmap Tutorial[gelöst]

Beitrag von wennerer »

Hallo zusammen,
ich beschäftige mich gerade mit dem BGRABitmap Tutorial im Wiki.
https://wiki.freepascal.org/BGRABitmap_tutorial/de
Im Kapitel 8 über Texturen habe ich diese Fehlermeldung:
unit1.pas(37,6) Error: Identifier not found "PPixel"
in dem Quelltext:

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
  BGRABitmap, BGRABitmapTypes, BGRAGradients;


type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;
 
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormPaint(Sender: TObject);
var
  image,tex: TBGRABitmap;
  i: Integer;
  p: PPixel;

  function Interp256(value1,value2,position: integer): integer; inline;
  begin
       result := (value1*(256-position) + value2*position) shr 8;
  end;

  function Interp256(color1,color2: TBGRAPixel; position: integer): TBGRAPixel; inline;
  begin
       result.red     := Interp256(color1.red,color2.red, position);
       result.green := Interp256(color1.green,color2.green, position);
       result.blue   := Interp256(color1.blue,color2.blue, position);
       result.alpha := Interp256(color1.alpha,color2.alpha, position);
  end;
begin
    image := TBGRABitmap.Create(ClientWidth,ClientHeight);

    tex := CreateCyclicPerlinNoiseMap(100,100);

     p := tex.Data;
    for i := 0 to tex.NbPixels-1 do
    begin
      p^ := Interp256( BGRA(0,128,0), BGRA(192,255,0), p^.red );
      inc(p);
    end;

    image.FillRect(0,0,image.Width,image.Height, tex, dmset);
    tex.free;

    image.Draw(Canvas,0,0,True);
    image.free;
end;

end.

Eigentlich denke ich, mich an die Anweisungen im Wiki gehalten zu haben. Aber offensichtlich mach da was falsch! Muss ich noch eine Unit einbinden? Wer weiß Rat?

Viele Grüße
Bernd
Zuletzt geändert von wennerer am Mo 3. Aug 2020, 21:41, insgesamt 1-mal geändert.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Hänge im BGRABitmap Tutorial

Beitrag von Winni »

Hi!

ppixel gibt es als type nicht!

Was Du (wahrscheinlich) meinst ist

PBGRAPixel


was wiederum ein Pointer auf einen TBGRAPixel ist.

Sieht nach notwendigem Zurücklehnen und Entspannen aus, um die Konzentration wieder zu bekommen!

Winni

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Hänge im BGRABitmap Tutorial

Beitrag von wennerer »

Vielen Dank!
Jetzt gehts :D

Viele Grüße
Bernd

Antworten