def __init__(self):
        """Create support objects for the splash screen."""

        logger.info("Instantiating splash screen.")

        ### obtain and store an object w/ a surface
        ### representing the application icon used in
        ### the splash screen

        self.app_icon = Object2D.from_surface(
            render_layered_icon(
                chars=[chr(ordinal) for ordinal in (183, 184, 185)],
                dimension_name="width",
                dimension_value=88,
                colors=[BLACK, WHITE, (77, 77, 105)],
                background_width=92,
                background_height=92,
            )
        )

        ### obtain and store an object whose surface
        ### represents text describing the kind of software
        ### this application represents

        self.kind_label = Object2D.from_surface(
            surface=render_text(
                text=t.splash_screen.node_editor,
                ## text settings w/ different
                ## font height
                **{
                    **TEXT_SETTINGS,
                    "font_height": (SOFTWARE_KIND_FONT_HEIGHT),
                },
            )
        )

        ### obtain and store an object whose surface
        ### represents the text of the application title

        self.title_label = Object2D.from_surface(
            surface=render_text(
                text=NO_RELEASE_LEVEL_FULL_TITLE,
                ## text settings w/ different
                ## font height
                **{**TEXT_SETTINGS, "font_height": TITLE_FONT_HEIGHT},
            )
        )

        ### obtain and store an object whose surface
        ### represents the text of a subheading for
        ### the application

        self.subheading_label = Object2D.from_surface(
            surface=render_text(
                text=(t.splash_screen.nodes_from_functions),
                ## text settings w/ different
                ## font height
                **{**TEXT_SETTINGS, "font_height": SUBHEADING_FONT_HEIGHT},
            )
        )

        ### obtain and store an object whose surface
        ### represents the text of the application
        ### release level

        self.release_level_label = Object2D.from_surface(
            surface=render_text(
                text=APP_VERSION.release_level,
                ## different text settings for
                ## release level
                **RELEASE_LEVEL_TEXT_SETTINGS,
            )
        )

        ### create objects whose surfaces contain both
        ### images and text, representing links and actions
        ### (things like creating a new file)

        ## link objects

        self.project_link_objs = get_project_link_objs()
        self.powered_link_objs = get_powered_link_objs()

        ## action objects
        self.action_objs = get_action_objs()

        ### also create the same kind of objects, but
        ### representing recent files the user can choose
        ### to open (if there are such files)

        self.recent_files = get_recent_files()

        self.recent_file_objs = get_recent_file_objs(self.recent_files)

        ### create and store an object representing an action to open
        ### a "what's new?" local page
        self.whats_new_obj = get_whats_new_obj()

        ### create and store an object representing
        ### the license declaration

        self.license_declaration = get_license_declaration_obj()

        ### create and set objects to support animation
        self.set_animation_support_objects()

        ### url label;
        ###
        ### the 100 is a temporary value which is
        ### replaced by self.rect.width minus 10 within
        ### the positioning method

        self.url_label = Label(
            text="url",
            max_width=100,
            **URL_TEXT_SETTINGS,
        )

        ### position objects
        self.position_and_define_boundaries()

        ### define an attribute to hold a reference to
        ### the rect of an object hovered by the mouse
        ### or hold None, when there aren't any
        self.hovered_rect = None

        ### define a flag to indicate when the url label
        ### must be drawn
        self.draw_url_label = False

        ### append the splash screen centering method
        ### as a window resizing setup

        APP_REFS.window_resize_setups.append(self.center_splashscreen)

        ### set update operation
        self.update = self.update_animation
Create support objects for the splash screen.
nodezator/splashscreen/main.py