- Fixed drawing of round objects (Circles, Rounded Rects) using a lookup table

- Added function to read out the display_buffer via USB-Serial
 - Added basic structure and files for later complete firmware (still in progress)
 - Added Doc folder with schematic in it
 - Added Python script and batch file to read out the display buffer and open the image in gimp
This commit is contained in:
2025-09-07 08:55:39 +02:00
parent 714b5be13c
commit 128d42c586
66 changed files with 29943 additions and 225 deletions

View File

@@ -372,6 +372,15 @@ void Display_Screen_Transition_Tick()
}
}
bool Display_Screen_Transition_Ongoing()
{
if(_Transition_Settings.Direction_Out == TRANSITION_NONE && _Transition_Settings.Direction_In == TRANSITION_NONE) {
return false;
}
return true;
}
void Display_Render_Objects(void)
{
Object_Float* F;
@@ -718,6 +727,15 @@ uint* Display_Get_Frame_Counter_Reference(void)
return &_Frame_Counter;
}
Display_Color Display_Get_Pixel(uint32_t pixel_number)
{
if(pixel_number >= DISPLAY_HEIGHT * DISPLAY_WIDTH) {
return 0;
}
return _Image_Buffer.Dim_1[pixel_number];
}
void Display_Set_Debug_Print(void)
{
_Debug_Print = true;
@@ -756,7 +774,11 @@ void Display_Render_Objects_Shape(Coordinates* coordinates_object, Object_Shape*
Display_Shapes_Draw_Round_Rect_Frame(coordinates_object->X, coordinates_object->Y, shape->Dimension.Width, shape->Dimension.Height, shape->Radius_Start, shape->Thickness, shape->Color);
break;
case CIRCLE:
case CIRCLE_FILLED:
Display_Shapes_Draw_Circle_Filled(coordinates_object->X, coordinates_object->Y, shape->Radius_Start, shape->Color);
break;
case CIRCLE_FRAME:
Display_Shapes_Draw_Circle_Frame(coordinates_object->X, coordinates_object->Y, shape->Radius_Start, shape->Thickness, shape->Color);
break;
@@ -1157,7 +1179,7 @@ void Display_Draw_Menu_Ring(Coordinates* coordinates, Object_Menu_Ring* menu_rin
Coordinates Coordinate_Dot = Display_Shapes_Polar_To_XY(Center_X, Center_Y, (uint16_t)Total_Rotation, Config->Item_Radius);
Display_Shapes_Draw_Circle_Frame(Center_X, Center_Y, Config->Item_Radius, 2, Config->Selection_Ring_Color);
Display_Shapes_Draw_Circle_Filled(Coordinate_Dot.X, Coordinate_Dot.Y, 4, Config->Selection_Ring_Color);
Display_Shapes_Draw_Circle_Filled(Coordinate_Dot.X, Coordinate_Dot.Y, 5, Config->Selection_Ring_Color);
}
// Draw center circle with animated scale (both phases)
@@ -1569,7 +1591,8 @@ void Display_Draw_Select_List(Coordinates* coordinates, char* list_titles, uint3
return;
}
Display_Shapes_Draw_Round_Rect_Frame(X_Entires-4, _Select_List_Current_Y-2, Entry_Width+8, Entry_Height+4, 5, 1, config->Color_Selected);
Display_Shapes_Draw_Round_Rect_Frame(X_Entires-4, _Select_List_Current_Y-4, Entry_Width+8, Entry_Height+8, 5, 1, config->Color_Selected);
// Display_Shapes_Draw_Rect_Frame(X_Entires-6, _Select_List_Current_Y-2, Entry_Width+8, Entry_Height+8, 1, config->Color_Selected);
int Move_Direction = _NONE;
if(_Select_List_Current_Y < Y_Target) {