Ignore:
Timestamp:
Sep 25, 2017, 2:48:08 PM (7 years ago)
Author:
chronos
Message:
  • Added: Drawing relative to Canvas. In case of Window drawing relative to Window.
  • Modified: Use custom TPoint and TRectangle if possible.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Packages/Kernel/UKernel.pas

    r12 r13  
    66
    77uses
    8   Classes, Math, SysUtils, UList, Contnrs, UFileSystem, UMemory, UScreen, UDevice,
    9   fgl, UApp, UScheduler, UApi;
     8  Classes, SysUtils, UList, Contnrs, UFileSystem, UMemory, UScreen, UDevice,
     9  fgl, UApp, UScheduler, UApi, UGraphics;
    1010
    1111type
     
    3737    Devices: TNamedObjectList<TDevice>;
    3838    Screens: TFPGObjectList<TScreen>;
     39    Desktop: TDesktop;
    3940    procedure AppExecute(AFile: TFile);
    4041    procedure Init;
    4142    procedure Run;
     43    procedure Terminate;
    4244    constructor Create;
    4345    destructor Destroy; override;
     
    8486      NewScreen.BytesPerLine := VideoMode.GetBytesPerLine;
    8587      NewScreen.Device := VideoDevice;
     88      NewScreen.Canvas := TScreenCanvas.Create;
     89      TScreenCanvas(NewScreen.Canvas).Screen := NewScreen;
    8690      Screens.Add(NewScreen);
    8791    end;
     
    150154end;
    151155
     156procedure TKernel.Terminate;
     157begin
     158  if Scheduler.Running then Scheduler.Stop;
     159end;
     160
    152161constructor TKernel.Create;
    153162begin
     
    159168  Api := TKernelApi.Create;
    160169  Api.Kernel := Self;
     170  Desktop := TDesktop.Create;
    161171end;
    162172
    163173destructor TKernel.Destroy;
    164174begin
     175  Terminate;
     176  FreeAndNil(Desktop);
    165177  FreeAndNil(Api);
    166178  FreeAndNil(Screens);
Note: See TracChangeset for help on using the changeset viewer.