protected function standard_renderer_classnames($component, $subtype = null) {
        global $CFG; // Needed in included files.
        $classnames = array();

        // Standardize component name ala frankenstyle.
        list($plugin, $type) = core_component::normalize_component($component);
        if ($type === null) {
            $component = $plugin;
        } else {
            $component = $plugin.'_'.$type;
        }

        if ($component !== 'core') {
            // Renderers are stored in renderer.php files.
            if (!$compdirectory = core_component::get_component_directory($component)) {
                throw new coding_exception('Invalid component specified in renderer request', $component);
            }
            $rendererfile = $compdirectory . '/renderer.php';
            if (file_exists($rendererfile)) {
                include_once($rendererfile);
            }

        } else if (!empty($subtype)) {
            $coresubsystems = core_component::get_core_subsystems();
            if (!array_key_exists($subtype, $coresubsystems)) { // There may be nulls.
                throw new coding_exception('Invalid core subtype "' . $subtype . '" in renderer request', $subtype);
            }
            if ($coresubsystems[$subtype]) {
                $rendererfile = $coresubsystems[$subtype] . '/renderer.php';
                if (file_exists($rendererfile)) {
                    include_once($rendererfile);
                }
            }
        }

        if (empty($subtype)) {
            // Theme specific auto-loaded name (only valid when prefixed with the theme name).
            $classnames[] = array(
                'validwithprefix' => true,
                'validwithoutprefix' => false,
                'autoloaded' => true,
                'classname' => '\\output\\' . $component . '_renderer'
            );

            // Standard autoloaded plugin name (not valid with a prefix).
            $classnames[] = array(
                'validwithprefix' => false,
                'validwithoutprefix' => true,
                'autoloaded' => true,
                'classname' => '\\' . $component . '\\output\\renderer'
            );
            // Legacy class name - (valid with or without a prefix).
            $classnames[] = array(
                'validwithprefix' => true,
                'validwithoutprefix' => true,
                'autoloaded' => false,
                'classname' => $component . '_renderer'
            );
        } else {
            // Theme specific auto-loaded name (only valid when prefixed with the theme name).
            $classnames[] = array(
                'validwithprefix' => true,
                'validwithoutprefix' => false,
                'autoloaded' => true,
                'classname' => '\\output\\' . $component . '\\' . $subtype . '_renderer'
            );
            // Version of the above with subtype being a namespace level on it's own.
            $classnames[] = array(
                'validwithprefix' => true,
                'validwithoutprefix' => false,
                'autoloaded' => true,
                'classname' => '\\output\\' . $component . '\\' . $subtype . '\\renderer'
            );
            // Standard autoloaded plugin name (not valid with a prefix).
            $classnames[] = array(
                'validwithprefix' => false,
                'validwithoutprefix' => true,
                'autoloaded' => true,
                'classname' => '\\' . $component . '\\output\\' . $subtype . '_renderer'
            );
            // Version of the above with subtype being a namespace level on it's own.
            $classnames[] = array(
                'validwithprefix' => false,
                'validwithoutprefix' => true,
                'autoloaded' => true,
                'classname' => '\\' . $component . '\\output\\' . $subtype . '\\renderer'
            );
            // Legacy class name - (valid with or without a prefix).
            $classnames[] = array(
                'validwithprefix' => true,
                'validwithoutprefix' => true,
                'autoloaded' => false,
                'classname' => $component . '_' . $subtype . '_renderer'
            );
        }
        return $classnames;
    }