+ Commons for graphics
This commit is contained in:
parent
7b67b98989
commit
10633ac67e
2 changed files with 122 additions and 40 deletions
|
@ -1,4 +1,6 @@
|
|||
with Interfaces;
|
||||
with STM32.Graphics;
|
||||
use STM32.Graphics;
|
||||
|
||||
package STM32.DMA2D is
|
||||
|
||||
|
@ -71,33 +73,6 @@ package STM32.DMA2D is
|
|||
end record;
|
||||
|
||||
-- FGPFCCR, BGPFCCR
|
||||
type Color_Mode is (
|
||||
ARGB8888,
|
||||
RGB888,
|
||||
RGB565,
|
||||
ARGB1555,
|
||||
ARGB4444,
|
||||
L8,
|
||||
AL44,
|
||||
AL88,
|
||||
L4,
|
||||
A8,
|
||||
A4
|
||||
) with Size => 4;
|
||||
|
||||
for Color_Mode use (
|
||||
ARGB8888 => 2#0000#,
|
||||
RGB888 => 2#0001#,
|
||||
RGB565 => 2#0010#,
|
||||
ARGB1555 => 2#0011#,
|
||||
ARGB4444 => 2#0100#,
|
||||
L8 => 2#0101#,
|
||||
AL44 => 2#0110#,
|
||||
AL88 => 2#0111#,
|
||||
L4 => 2#1000#,
|
||||
A8 => 2#1001#,
|
||||
A4 => 2#1010#
|
||||
);
|
||||
|
||||
type CLUT_Color_Mode is new Color_Mode range ARGB8888 .. RGB888
|
||||
with Size => 1;
|
||||
|
@ -134,19 +109,8 @@ package STM32.DMA2D is
|
|||
ALPHA at 0 range 24 .. 31;
|
||||
end record;
|
||||
|
||||
-- FGCOLR, BGCOLR, FGCLUT(), BGCLUT()
|
||||
type Color_Register is record
|
||||
BLUE : Integer range 0 .. 2**8 - 1;
|
||||
GREEN : Integer range 0 .. 2**8 - 1;
|
||||
RED : Integer range 0 .. 2**8 - 1;
|
||||
ALPHA : Integer range 0 .. 2**8 - 1 := 0;
|
||||
end record with Size => 32;
|
||||
for Color_Register use record
|
||||
BLUE at 0 range 0 .. 7;
|
||||
GREEN at 0 range 8 .. 15;
|
||||
RED at 0 range 16 .. 23;
|
||||
ALPHA at 0 range 24 .. 31;
|
||||
end record;
|
||||
-- FGCOLR, BGCOLR, FGCLUT(), BGCLUT() use Color_Register from STM32.Graphics
|
||||
subtype Color_Register is ARGB8888_Pixel;
|
||||
|
||||
-- OPFCCR
|
||||
type Output_Color_Mode is new Color_Mode range ARGB8888 .. ARGB4444
|
||||
|
|
118
source/stm32-graphics.ads
Normal file
118
source/stm32-graphics.ads
Normal file
|
@ -0,0 +1,118 @@
|
|||
with Interfaces;
|
||||
|
||||
package STM32.Graphics is
|
||||
-- Commons for graphics
|
||||
-- Color register and pixel formats
|
||||
|
||||
pragma Pure;
|
||||
|
||||
type ARGB8888_Pixel is record
|
||||
B : Integer range 0 .. 2**8 - 1;
|
||||
G : Integer range 0 .. 2**8 - 1;
|
||||
R : Integer range 0 .. 2**8 - 1;
|
||||
A : Integer range 0 .. 2**8 - 1 := 0;
|
||||
end record with Size => 32;
|
||||
for ARGB8888_Pixel use record
|
||||
B at 0 range 0 .. 7;
|
||||
G at 0 range 8 .. 15;
|
||||
R at 0 range 16 .. 23;
|
||||
A at 0 range 24 .. 31;
|
||||
end record;
|
||||
|
||||
type RGB888_Pixel is record
|
||||
B : Integer range 0 .. 2**8 - 1;
|
||||
G : Integer range 0 .. 2**8 - 1;
|
||||
R : Integer range 0 .. 2**8 - 1;
|
||||
end record with Size => 24;
|
||||
for RGB888_Pixel use record
|
||||
B at 0 range 0 .. 7;
|
||||
G at 0 range 8 .. 15;
|
||||
R at 0 range 16 .. 23;
|
||||
end record;
|
||||
|
||||
type RGB565_Pixel is record
|
||||
B : Integer range 0 .. 2**5 - 1;
|
||||
G : Integer range 0 .. 2**6 - 1;
|
||||
R : Integer range 0 .. 2**5 - 1;
|
||||
end record with Size => 16;
|
||||
for RGB565_Pixel use record
|
||||
B at 0 range 0 .. 4;
|
||||
G at 0 range 5 .. 10;
|
||||
R at 0 range 11 .. 15;
|
||||
end record;
|
||||
|
||||
type ARGB1555_Pixel is record
|
||||
B : Integer range 0 .. 2**5 - 1;
|
||||
G : Integer range 0 .. 2**5 - 1;
|
||||
R : Integer range 0 .. 2**5 - 1;
|
||||
A : Integer range 0 .. 1 := 0;
|
||||
end record with Size => 16;
|
||||
for ARGB1555_Pixel use record
|
||||
B at 0 range 0 .. 4;
|
||||
G at 0 range 5 .. 9;
|
||||
R at 0 range 10 .. 14;
|
||||
A at 0 range 15 .. 15;
|
||||
end record;
|
||||
|
||||
type ARGB4444_Pixel is record
|
||||
B : Integer range 0 .. 2**4 - 1;
|
||||
G : Integer range 0 .. 2**4 - 1;
|
||||
R : Integer range 0 .. 2**4 - 1;
|
||||
A : Integer range 0 .. 2**4 - 1 := 0;
|
||||
end record with Size => 16;
|
||||
for ARGB4444_Pixel use record
|
||||
B at 0 range 0 .. 3;
|
||||
G at 0 range 4 .. 7;
|
||||
R at 0 range 8 .. 11;
|
||||
A at 0 range 12 .. 15;
|
||||
end record;
|
||||
|
||||
subtype L8_Pixel is Interfaces.Unsigned_8;
|
||||
|
||||
type AL44_Pixel is record
|
||||
L : Integer range 0 .. 2**4 - 1;
|
||||
A : Integer range 0 .. 2**4 - 1;
|
||||
end record with Size => 8;
|
||||
for AL44_Pixel use record
|
||||
L at 0 range 0 .. 3;
|
||||
A at 0 range 4 .. 7;
|
||||
end record;
|
||||
|
||||
type AL88_Pixel is record
|
||||
L : Integer range 0 .. 2**8 - 1;
|
||||
A : Integer range 0 .. 2**8 - 1;
|
||||
end record with Size => 16;
|
||||
for AL88_Pixel use record
|
||||
L at 0 range 0 .. 7;
|
||||
A at 0 range 8 .. 15;
|
||||
end record;
|
||||
|
||||
type Color_Mode is (
|
||||
ARGB8888,
|
||||
RGB888,
|
||||
RGB565,
|
||||
ARGB1555,
|
||||
ARGB4444,
|
||||
L8,
|
||||
AL44,
|
||||
AL88,
|
||||
L4,
|
||||
A8,
|
||||
A4
|
||||
);
|
||||
|
||||
for Color_Mode use (
|
||||
ARGB8888 => 2#0000#,
|
||||
RGB888 => 2#0001#,
|
||||
RGB565 => 2#0010#,
|
||||
ARGB1555 => 2#0011#,
|
||||
ARGB4444 => 2#0100#,
|
||||
L8 => 2#0101#,
|
||||
AL44 => 2#0110#,
|
||||
AL88 => 2#0111#,
|
||||
L4 => 2#1000#,
|
||||
A8 => 2#1001#,
|
||||
A4 => 2#1010#
|
||||
);
|
||||
|
||||
end STM32.Graphics;
|
Loading…
Reference in a new issue