From 5c15343ed0a3b0f4e285ea7d220ffb58d738c029 Mon Sep 17 00:00:00 2001
From: Kieron Morris <kjm@kieronmorris.me>
Date: Wed, 7 Jul 2021 17:28:06 +0100
Subject: [PATCH] Delete files to recommit with lowercase names.

---
 src/driver/video/VESA.pas         |  87 ------------------
 src/driver/video/VESA16.pas       |  43 ---------
 src/driver/video/VESA24.pas       |  43 ---------
 src/driver/video/VESA32.pas       |  52 -----------
 src/driver/video/VESA8.pas        |  43 ---------
 src/driver/video/doublebuffer.pas |  94 -------------------
 src/driver/video/video.pas        | 146 ------------------------------
 src/driver/video/videotypes.pas   |  83 -----------------
 8 files changed, 591 deletions(-)
 delete mode 100644 src/driver/video/VESA.pas
 delete mode 100644 src/driver/video/VESA16.pas
 delete mode 100644 src/driver/video/VESA24.pas
 delete mode 100644 src/driver/video/VESA32.pas
 delete mode 100644 src/driver/video/VESA8.pas
 delete mode 100644 src/driver/video/doublebuffer.pas
 delete mode 100644 src/driver/video/video.pas
 delete mode 100644 src/driver/video/videotypes.pas

diff --git a/src/driver/video/VESA.pas b/src/driver/video/VESA.pas
deleted file mode 100644
index ae3fcf0b..00000000
--- a/src/driver/video/VESA.pas
+++ /dev/null
@@ -1,87 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->VESA - VESA Display Driver.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit vesa;
-
-interface
-
-uses
-    videotypes, tracer, multiboot, lmemorymanager;
-
-//Init the driver, and register with the video interface in a state ready for execution.
-procedure init(Register : FRegisterDriver);
-
-implementation
-
-uses
-    VESA8, VESA16, VESA24, VESA32;
-
-procedure allocateVESAFrameBuffer(Address : uint32; Width : uint32; Height : uint32);
-var
-    LowerAddress, UpperAddress : uint32;
-    Block : uint32;
-
-begin
-    tracer.push_trace('VESA.allocateFrameBuffer.enter');
-    LowerAddress:= ((Address) SHR 22)-1;
-    UpperAddress:= ((Address + (Width * Height)) SHR 22)+1;
-    For Block:=LowerAddress to UpperAddress do begin
-        kpalloc(Block SHL 22);
-    end;
-    tracer.push_trace('VESA.allocateFrameBuffer.exit');
-end;
-
-procedure initVESAFrameBuffer(VideoBuffer : PVideoBuffer; Location : uint64; Width : uint32; Height : uint32; BitsPerPixel : uint8);
-begin
-    tracer.push_trace('VESA.initVESAFrameBuffer.enter');
-    if not(VideoBuffer^.Initialized) then begin
-        VideoBuffer^.Location:= Location;
-        VideoBuffer^.BitsPerPixel:= BitsPerPixel;
-        VideoBuffer^.Width:= Width;
-        VideoBuffer^.Height:= Height;
-        allocateVESAFrameBuffer(VideoBuffer^.Location, VideoBuffer^.Width, VideoBuffer^.Height);
-        if VideoBuffer^.Location <> 0 then
-            VideoBuffer^.Initialized:= True;
-    end;
-    tracer.push_trace('VESA.initVESAFrameBuffer.exit');
-end;
-
-function enable(VideoInterface : PVideoInterface) : boolean;
-begin
-    tracer.push_trace('VESA.enable.enter');
-    initVESAFrameBuffer(@VideoInterface^.FrontBuffer, multiboot.multibootinfo^.framebuffer_addr, multiboot.multibootinfo^.framebuffer_width, multiboot.multibootinfo^.framebuffer_height, multiboot.multibootinfo^.framebuffer_bpp);
-    case (VideoInterface^.FrontBuffer.BitsPerPixel) of
-        08:VESA8.init(@VideoInterface^.DrawRoutines);
-        16:VESA16.init(@VideoInterface^.DrawRoutines);
-        24:VESA24.init(@VideoInterface^.DrawRoutines);
-        32:VESA32.init(@VideoInterface^.DrawRoutines);
-    end;
-    enable:= VideoInterface^.FrontBuffer.Initialized;  
-    tracer.push_trace('VESA.enable.exit');
-end;
-
-procedure init(Register : FRegisterDriver);
-begin
-    tracer.push_trace('VESA.init.enter');
-    if Register <> nil then
-        Register('VESA', @enable);   
-    tracer.push_trace('VESA.init.exit');
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/VESA16.pas b/src/driver/video/VESA16.pas
deleted file mode 100644
index a15f9e0c..00000000
--- a/src/driver/video/VESA16.pas
+++ /dev/null
@@ -1,43 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->VESA16 - Implementation of VESA 16bpp draw routines for the VESA Driver.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit vesa16;
-
-interface
-
-uses
-    videotypes, vesa, tracer, color;
-
-//Init the draw routines by providing what we support through the DrawRoutines struct.
-procedure init(DrawRoutines : PDrawRoutines);
-
-implementation
-
-procedure DrawPixel(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32);
-begin
-
-end;
-
-procedure init(DrawRoutines : PDrawRoutines);
-begin
-    tracer.push_trace('vesa16.init.enter');   
-    tracer.push_trace('vesa16.init.exit');
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/VESA24.pas b/src/driver/video/VESA24.pas
deleted file mode 100644
index f4e4846b..00000000
--- a/src/driver/video/VESA24.pas
+++ /dev/null
@@ -1,43 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->VESA24 - Implementation of VESA 24bpp draw routines for the VESA Driver.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit vesa24;
-
-interface
-
-uses
-    videotypes, vesa, tracer, color;
-
-//Init the draw routines by providing what we support through the DrawRoutines struct.
-procedure init(DrawRoutines : PDrawRoutines);
-
-implementation
-
-procedure DrawPixel(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32);
-begin
-
-end;
-
-procedure init(DrawRoutines : PDrawRoutines);
-begin
-	tracer.push_trace('vesa24.init.enter');
-	tracer.push_trace('vesa24.init.exit');
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/VESA32.pas b/src/driver/video/VESA32.pas
deleted file mode 100644
index 18adf7b3..00000000
--- a/src/driver/video/VESA32.pas
+++ /dev/null
@@ -1,52 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->VESA32 - Implementation of VESA 32bpp draw routines for the VESA Driver.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit vesa32;
-
-interface
-
-uses
-    videotypes, vesa, tracer, color;
-
-//Init the draw routines by providing what we support through the DrawRoutines struct.
-procedure init(DrawRoutines : PDrawRoutines);
-
-implementation
-
-procedure DrawPixel(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32);
-var
-    Location : PuInt32;
-    LocationIndex : Uint32;
-
-begin
-    tracer.push_trace('vesa32.DrawPixel.enter');
-    Location:= Puint32(Buffer^.Location);
-    LocationIndex:= (Y * Buffer^.Width) + X;
-    Location[LocationIndex]:= uint32(Pixel);
-    tracer.push_trace('vesa32.DrawPixel.exit');
-end;
-
-procedure init(DrawRoutines : PDrawRoutines);
-begin
-    tracer.push_trace('vesa32.init.enter');
-    DrawRoutines^.DrawPixel:= @DrawPixel;
-    tracer.push_trace('vesa32.init.exit');
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/VESA8.pas b/src/driver/video/VESA8.pas
deleted file mode 100644
index e11b4e1a..00000000
--- a/src/driver/video/VESA8.pas
+++ /dev/null
@@ -1,43 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->VESA8 - Implementation of VESA 8bpp draw routines for the VESA Driver.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit vesa8;
-
-interface
-
-uses
-    videotypes, vesa, tracer, color;
-
-//Init the draw routines by providing what we support through the DrawRoutines struct.
-procedure init(DrawRoutines : PDrawRoutines);
-
-implementation
-
-procedure DrawPixel(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32);
-begin
-
-end;
-
-procedure init(DrawRoutines : PDrawRoutines);
-begin
-    tracer.push_trace('vesa8.init.enter');   
-    tracer.push_trace('vesa8.init.exit');  
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/doublebuffer.pas b/src/driver/video/doublebuffer.pas
deleted file mode 100644
index 2fa942bd..00000000
--- a/src/driver/video/doublebuffer.pas
+++ /dev/null
@@ -1,94 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->Doublebuffer - Implements a very basic double buffer, tested with VESA drivers.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit doublebuffer;
-
-interface
-
-uses
-    lmemorymanager, tracer, videotypes;
-
-//Init the driver, and register with the video interface in a state ready for execution.
-procedure init(Register : FRegisterDriver);
-
-implementation
-
-function allocateBackBuffer(Width : uint32; Height : uint32; BitsPerPixel : uint8) : uint64;
-begin
-    tracer.push_trace('doublebuffer.allocateBackBuffer.enter');
-    //This doesn't currently work... Needs a rework of lmemorymanager
-    allocateBackBuffer:= uint64(klalloc((Width * Height) * BitsPerPixel));
-    tracer.push_trace('doublebuffer.allocateBackBuffer.exit');
-end;
-
-procedure initBackBuffer(VInterface : PVideoInterface; Width : uint32; Height : uint32; BitsPerPixel : uint8);
-begin
-    tracer.push_trace('doublebuffer.initBackBuffer.enter');
-    if not(VInterface^.BackBuffer.Initialized) then begin
-        VInterface^.BackBuffer.Location:= allocateBackBuffer(Width, Height, BitsPerPixel);
-        if (VInterface^.BackBuffer.Location <> 0) then begin
-            VInterface^.BackBuffer.Width:= Width;
-            VInterface^.BackBuffer.Height:= Height;
-            VInterface^.BackBuffer.BitsPerPixel:= BitsPerPixel;
-            VInterface^.BackBuffer.Initialized:= True;
-        end;
-    end;
-    tracer.push_trace('doublebuffer.initBackBuffer.exit');
-end;
-
-procedure Flush(FrontBuffer : PVideoBuffer; BackBuffer : PVideoBuffer);
-var
-    X,Y : uint32;
-    Back,Front : PuInt64;
-
-begin
-    tracer.push_trace('doublebuffer.Flush.enter');
-    if not(BackBuffer^.Initialized) then exit;
-    if ((FrontBuffer^.Width > BackBuffer^.Width) or (FrontBuffer^.Height > BackBuffer^.Height)) then exit;
-    Back:= PUint64(BackBuffer^.Location);
-    Front:= PuInt64(FrontBuffer^.Location);
-    for X:=0 to (BackBuffer^.Width-1) div 2 do begin
-        for Y:=0 to (BackBuffer^.Height-1) div 2 do begin
-            Front[(Y * BackBuffer^.Width) + X]:= Back[(Y * BackBuffer^.Width) + X];
-        end;
-    end;
-    tracer.push_trace('doublebuffer.Flush.exit');
-end;
-
-function enable(VideoInterface : PVideoInterface) : boolean;
-begin
-    tracer.push_trace('doublebuffer.enable.enter');
-    enable:= false;
-    initBackBuffer(VideoInterface, VideoInterface^.FrontBuffer.Width, VideoInterface^.FrontBuffer.Height, VideoInterface^.FrontBuffer.BitsPerPixel);
-    if VideoInterface^.BackBuffer.Initialized then begin
-        VideoInterface^.DefaultBuffer:= @VideoInterface^.BackBuffer;
-        VideoInterface^.DrawRoutines.Flush:= @Flush;
-        enable:= true;
-    end;
-    tracer.push_trace('doublebuffer.enable.exit');
-end;
-
-procedure init(Register : FRegisterDriver);
-begin
-    tracer.push_trace('doublebuffer.init.enter');
-    Register('BASIC_DOUBLE_BUFFER', @enable);
-    tracer.push_trace('doublebuffer.init.exit');
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/video.pas b/src/driver/video/video.pas
deleted file mode 100644
index bf23555f..00000000
--- a/src/driver/video/video.pas
+++ /dev/null
@@ -1,146 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->Video - Provides an abstract rasterization/drawing interface.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit video;
-
-interface
-
-uses
-    lmemorymanager, tracer, color, videotypes, hashmap;
-
-procedure init();
-procedure DrawPixel(X : uint32; Y : uint32; Pixel : TRGB32);
-procedure Flush();
-function register(DriverIdentifier : pchar; EnableCallback : FEnableDriver) : boolean;
-function enable(DriverIdentifier : pchar) : boolean;
-function frontBufferWidth : uint32;
-function frontBufferHeight : uint32;
-function frontBufferBpp : uint8;
-function backBufferWidth : uint32;
-function backBufferHeight : uint32;
-function backBufferBpp : uint8;
-
-implementation
-
-Procedure dummyFDrawPixel(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32);
-begin
-    tracer.push_trace('video.dummyFDrawPixel.enter');
-    //Do nothing
-end;
-
-Procedure dummyFFlush(FrontBuffer : PVideoBuffer; BackBuffer : PVideoBuffer);
-begin
-    tracer.push_trace('video.dummyFFlush.enter');
-    //Do nothing
-end;
-
-var
-    VideoInterface : TVideoInterface;
-    DriverMap      : PHashMap;
-
-procedure init();
-var
-    RGB : TRGB32;
-    x,y : uint32;
-
-begin
-    tracer.push_trace('video.init.enter');
-    VideoInterface.FrontBuffer.Initialized:= false;
-    VideoInterface.BackBuffer.Initialized:= false;
-    VideoInterface.DefaultBuffer:= @VideoInterface.FrontBuffer;
-    VideoInterface.DrawRoutines.DrawPixel:= @dummyFDrawPixel;
-    VideoInterface.DrawRoutines.Flush:= @dummyFFlush;
-    DriverMap:= hashmap.new;
-    tracer.push_trace('video.init.exit');
-end;
-
-function register(DriverIdentifier : pchar; EnableCallback : FEnableDriver) : boolean;
-var
-    Value : Void;
-
-begin
-    tracer.push_trace('video.register.enter');
-    register:= false;
-    Value:= Hashmap.get(DriverMap, DriverIdentifier);
-    if (Value = nil) then begin
-        Hashmap.add(DriverMap, DriverIdentifier, void(EnableCallback));
-        register:= true;
-    end;
-    tracer.push_trace('video.register.exit');
-end;
-
-function enable(DriverIdentifier : pchar) : boolean;
-var
-    Value : Void;
-
-begin
-    tracer.push_trace('video.enable.enter');
-    enable:= false;
-    Value:= Hashmap.get(DriverMap, DriverIdentifier);
-    if (Value <> nil) then begin
-        enable:= FEnableDriver(Value)(@VideoInterface);
-    end;
-    tracer.push_trace('video.enable.exit');
-end;
-
-procedure DrawPixel(X : uint32; Y : uint32; Pixel : TRGB32);
-begin
-    tracer.push_trace('video.DrawPixel.enter');
-    VideoInterface.DrawRoutines.DrawPixel(VideoInterface.DefaultBuffer, X, Y, Pixel);
-    tracer.push_trace('video.DrawPixel.exit');
-end;
-
-procedure Flush();
-begin
-    tracer.push_trace('video.Flush.enter');
-    VideoInterface.DrawRoutines.Flush(@VideoInterface.FrontBuffer, @VideoInterface.BackBuffer);
-    tracer.push_trace('video.Flush.exit');
-end;
-
-function frontBufferWidth : uint32;
-begin
-    frontBufferWidth:= VideoInterface.FrontBuffer.Width;
-end;
-
-function frontBufferHeight : uint32;
-begin
-    frontBufferHeight:= VideoInterface.FrontBuffer.Height;
-end;
-
-function frontBufferBpp : uint8;
-begin
-    frontBufferBpp:= VideoInterface.FrontBuffer.BitsPerPixel;
-end;
-
-function backBufferWidth : uint32;
-begin
-    backBufferWidth:= VideoInterface.BackBuffer.Width;
-end;
-
-function backBufferHeight : uint32;
-begin
-    backBufferHeight:= VideoInterface.BackBuffer.Height;
-end;
-
-function backBufferBpp : uint8;
-begin
-    backBufferBpp:= VideoInterface.BackBuffer.BitsPerPixel;
-end;
-
-end.
\ No newline at end of file
diff --git a/src/driver/video/videotypes.pas b/src/driver/video/videotypes.pas
deleted file mode 100644
index ee6d0d17..00000000
--- a/src/driver/video/videotypes.pas
+++ /dev/null
@@ -1,83 +0,0 @@
-//  Copyright 2021 Kieron Morris
-//
-//  Licensed under the Apache License, Version 2.0 (the "License");
-//  you may not use this file except in compliance with the License.
-//  You may obtain a copy of the License at
-//
-//  http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-
-{ 
-	Driver->Video->Videotypes - Provides types relating to the video framework & driver interface.
-	
-	@author(Kieron Morris <kjm@kieronmorris.me>)
-}
-unit videotypes;
-
-interface
-
-uses
-    color;
-
-type
-    //Arbitrary pointer to a video buffer in memory
-    VideoBuffer = uint32;
-
-    //Struct representing a Memory Mapped Video Buffer
-    TVideoBuffer = record
-        //Has this buffer been initialized? Has it been paged/created in memory?
-        Initialized     : Boolean;
-        //Location of the video buffer in memory as a QWORD.
-        Location        : VideoBuffer;
-        //How many bits per pixel?
-        BitsPerPixel    : uint8;
-        //Width of the buffer.
-        Width           : uint32;
-        //Height of the buffer.
-        Height          : uint32;
-    end;
-    //Pointer to a video buffer
-    PVideoBuffer = ^TVideoBuffer;
-
-    //(Abstract) Draw a pixel to screenspace
-    FDrawPixel = procedure(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32);
-    //(Abstract) Flush backbuffer to MMIO Buffer
-    FFlush     = procedure(FrontBuffer : PVideoBuffer; BackBuffer : PVideoBuffer);
-
-    //Routines for drawing to the screen
-    TDrawRoutines = record
-        DrawPixel : FDrawPixel;
-        Flush     : FFlush;
-    end;
-    //Pointer to drawing routines
-    PDrawRoutines = ^TDrawRoutines;
-
-    //Struct representing the whole video driver.
-    TVideoInterface = record
-        //Default buffer to be used when rendering, front buffer for no double buffering, back buffer otherwise.
-        DefaultBuffer   : PVideoBuffer;
-        //Memory Mapped IO Buffer for raw rasterization.
-        FrontBuffer     : TVideoBuffer;
-        //Back buffer used for double buffering, this is flushed to FrontBuffer with flush();
-        BackBuffer      : TVideoBuffer;
-        //Drawing Routines
-        DrawRoutines    : TDrawRoutines;
-    end;
-    //Pointer to a video interface struct.
-    PVideoInterface = ^TVideoInterface;
-
-    //(Abstract) Enable method for a driver, called from video to enable driver.
-    FEnableDriver = function(VideoInterface : PVideoInterface) : boolean;
-    //(Abstract) Register driver, called from a driver to register with the video interface.
-    FRegisterDriver = function(DriverIdentifier : pchar; EnableCallback : FEnableDriver) : boolean;
-    //(Abstract) Init driver, called from _somewhere_ to start the driver and register it with the video interface.
-    FInitDriver = procedure(Register : FRegisterDriver);
-
-implementation
-
-end.
\ No newline at end of file