#pragma once

// Extra2D - 统一入口头文件
// 包含所有公共 API

// Core
#include <extra2d/core/color.h>
#include <extra2d/core/math_types.h>
#include <extra2d/core/types.h>
#include <extra2d/core/module.h>
#include <extra2d/core/registry.h>

// Config removed - app info now in Application class

// Platform
#include <extra2d/platform/iinput.h>
#include <extra2d/platform/iwindow.h>
#include <extra2d/platform/keys.h>
#include <extra2d/platform/input_module.h>
#include <extra2d/platform/backend_factory.h>
#include <extra2d/platform/window_module.h>

// Graphics
#include <extra2d/graphics/camera/camera.h>
#include <extra2d/graphics/texture/font.h>
#include <extra2d/graphics/core/render_backend.h>
#include <extra2d/graphics/core/render_module.h>
#include <extra2d/graphics/shader/shader_manager.h>
#include <extra2d/graphics/texture/texture.h>
#include <extra2d/graphics/core/render_target.h>
#include <extra2d/graphics/camera/viewport_adapter.h>
#include <extra2d/graphics/memory/vram_manager.h>
#include <extra2d/graphics/texture/texture_pool.h>

// Scene
#include <extra2d/scene/node.h>
#include <extra2d/scene/scene.h>
#include <extra2d/scene/scene_manager.h>
#include <extra2d/scene/shape_node.h>
#include <extra2d/scene/sprite.h>

// Event
#include <extra2d/event/event.h>
#include <extra2d/event/event_dispatcher.h>
#include <extra2d/event/event_queue.h>

// Utils
#include <extra2d/utils/random.h>
#include <extra2d/utils/timer.h>

// Services
#include <extra2d/services/event_service.h>
#include <extra2d/services/scene_service.h>
#include <extra2d/services/timer_service.h>
#include <extra2d/services/camera_service.h>
#include <extra2d/services/logger_service.h>

// Application
#include <extra2d/app/application.h>

#ifdef __SWITCH__
#include <switch.h>
#endif
