+ Commons for graphics
This commit is contained in:
parent
7b67b98989
commit
10633ac67e
|
@ -1,4 +1,6 @@
|
||||||
with Interfaces;
|
with Interfaces;
|
||||||
|
with STM32.Graphics;
|
||||||
|
use STM32.Graphics;
|
||||||
|
|
||||||
package STM32.DMA2D is
|
package STM32.DMA2D is
|
||||||
|
|
||||||
|
@ -71,33 +73,6 @@ package STM32.DMA2D is
|
||||||
end record;
|
end record;
|
||||||
|
|
||||||
-- FGPFCCR, BGPFCCR
|
-- 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
|
type CLUT_Color_Mode is new Color_Mode range ARGB8888 .. RGB888
|
||||||
with Size => 1;
|
with Size => 1;
|
||||||
|
@ -134,19 +109,8 @@ package STM32.DMA2D is
|
||||||
ALPHA at 0 range 24 .. 31;
|
ALPHA at 0 range 24 .. 31;
|
||||||
end record;
|
end record;
|
||||||
|
|
||||||
-- FGCOLR, BGCOLR, FGCLUT(), BGCLUT()
|
-- FGCOLR, BGCOLR, FGCLUT(), BGCLUT() use Color_Register from STM32.Graphics
|
||||||
type Color_Register is record
|
subtype Color_Register is ARGB8888_Pixel;
|
||||||
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;
|
|
||||||
|
|
||||||
-- OPFCCR
|
-- OPFCCR
|
||||||
type Output_Color_Mode is new Color_Mode range ARGB8888 .. ARGB4444
|
type Output_Color_Mode is new Color_Mode range ARGB8888 .. ARGB4444
|
||||||
|
|
|
@ -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 New Issue