parent
9f83b8fde5
commit
4b1de5e36a
|
|
@ -1,20 +1,20 @@
|
||||||
#include <extra2d/app/application.h>
|
#include <extra2d/app/application.h>
|
||||||
#include <extra2d/core/registry.h>
|
#include <extra2d/core/registry.h>
|
||||||
#include <extra2d/platform/window_module.h>
|
|
||||||
#include <extra2d/platform/input_module.h>
|
|
||||||
#include <extra2d/graphics/core/render_module.h>
|
|
||||||
#include <extra2d/platform/iwindow.h>
|
|
||||||
#include <extra2d/platform/iinput.h>
|
|
||||||
#include <extra2d/graphics/core/render_backend.h>
|
#include <extra2d/graphics/core/render_backend.h>
|
||||||
|
#include <extra2d/graphics/core/render_module.h>
|
||||||
|
#include <extra2d/graphics/memory/vram_manager.h>
|
||||||
|
#include <extra2d/platform/iinput.h>
|
||||||
|
#include <extra2d/platform/input_module.h>
|
||||||
|
#include <extra2d/platform/iwindow.h>
|
||||||
|
#include <extra2d/platform/window_module.h>
|
||||||
|
#include <extra2d/services/camera_service.h>
|
||||||
|
#include <extra2d/services/event_service.h>
|
||||||
|
#include <extra2d/services/logger_service.h>
|
||||||
#include <extra2d/services/scene_service.h>
|
#include <extra2d/services/scene_service.h>
|
||||||
#include <extra2d/services/timer_service.h>
|
#include <extra2d/services/timer_service.h>
|
||||||
#include <extra2d/services/event_service.h>
|
|
||||||
#include <extra2d/services/camera_service.h>
|
|
||||||
#include <extra2d/services/logger_service.h>
|
|
||||||
#include <extra2d/graphics/memory/vram_manager.h>
|
|
||||||
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <thread>
|
|
||||||
|
|
||||||
namespace extra2d {
|
namespace extra2d {
|
||||||
|
|
||||||
|
|
@ -37,9 +37,7 @@ Application& Application::get() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
Application::Application() {
|
Application::Application() { Registry::instance().setApp(this); }
|
||||||
Registry::instance().setApp(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
Application::~Application() {
|
Application::~Application() {
|
||||||
if (initialized_) {
|
if (initialized_) {
|
||||||
|
|
@ -109,7 +107,8 @@ void Application::registerCoreServices() {
|
||||||
vpConfig.mode = ViewportMode::AspectRatio;
|
vpConfig.mode = ViewportMode::AspectRatio;
|
||||||
cameraService->setViewportConfig(vpConfig);
|
cameraService->setViewportConfig(vpConfig);
|
||||||
cameraService->updateViewport(win->width(), win->height());
|
cameraService->updateViewport(win->width(), win->height());
|
||||||
locator.registerService(std::static_pointer_cast<ICameraService>(cameraService));
|
locator.registerService(
|
||||||
|
std::static_pointer_cast<ICameraService>(cameraService));
|
||||||
|
|
||||||
win->onResize([cameraService](int width, int height) {
|
win->onResize([cameraService](int width, int height) {
|
||||||
cameraService->updateViewport(width, height);
|
cameraService->updateViewport(width, height);
|
||||||
|
|
@ -121,7 +120,8 @@ void Application::registerCoreServices() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::shutdown() {
|
void Application::shutdown() {
|
||||||
if (!initialized_) return;
|
if (!initialized_)
|
||||||
|
return;
|
||||||
|
|
||||||
VRAMMgr::get().printStats();
|
VRAMMgr::get().printStats();
|
||||||
|
|
||||||
|
|
@ -134,10 +134,12 @@ void Application::shutdown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::run() {
|
void Application::run() {
|
||||||
if (!initialized_) return;
|
if (!initialized_)
|
||||||
|
return;
|
||||||
|
|
||||||
auto *winMod = get<WindowModule>();
|
auto *winMod = get<WindowModule>();
|
||||||
if (!winMod || !winMod->win()) return;
|
if (!winMod || !winMod->win())
|
||||||
|
return;
|
||||||
|
|
||||||
lastFrameTime_ = getTimeSeconds();
|
lastFrameTime_ = getTimeSeconds();
|
||||||
|
|
||||||
|
|
@ -215,11 +217,13 @@ void Application::update() {
|
||||||
|
|
||||||
void Application::render() {
|
void Application::render() {
|
||||||
auto *renderMod = get<RenderModule>();
|
auto *renderMod = get<RenderModule>();
|
||||||
if (!renderMod || !renderMod->renderer()) return;
|
if (!renderMod || !renderMod->renderer())
|
||||||
|
return;
|
||||||
|
|
||||||
auto *renderer = renderMod->renderer();
|
auto *renderer = renderMod->renderer();
|
||||||
auto *winMod = get<WindowModule>();
|
auto *winMod = get<WindowModule>();
|
||||||
if (!winMod || !winMod->win()) return;
|
if (!winMod || !winMod->win())
|
||||||
|
return;
|
||||||
|
|
||||||
auto cameraService = ServiceLocator::instance().getService<ICameraService>();
|
auto cameraService = ServiceLocator::instance().getService<ICameraService>();
|
||||||
if (cameraService) {
|
if (cameraService) {
|
||||||
|
|
@ -229,7 +233,8 @@ void Application::render() {
|
||||||
static_cast<int>(vp.size.width), static_cast<int>(vp.size.height));
|
static_cast<int>(vp.size.width), static_cast<int>(vp.size.height));
|
||||||
renderer->setViewProjection(cameraService->getViewProjectionMatrix());
|
renderer->setViewProjection(cameraService->getViewProjectionMatrix());
|
||||||
} else {
|
} else {
|
||||||
renderer->setViewport(0, 0, winMod->win()->width(), winMod->win()->height());
|
renderer->setViewport(0, 0, winMod->win()->width(),
|
||||||
|
winMod->win()->height());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto sceneService = ServiceLocator::instance().getService<ISceneService>();
|
auto sceneService = ServiceLocator::instance().getService<ISceneService>();
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,16 @@
|
||||||
* @brief Extra2D 场景图测试示例
|
* @brief Extra2D 场景图测试示例
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <extra2d/extra2d.h>
|
|
||||||
#include <extra2d/platform/window_module.h>
|
|
||||||
#include <extra2d/platform/input_module.h>
|
|
||||||
#include <extra2d/graphics/core/render_module.h>
|
|
||||||
#include <extra2d/core/service_locator.h>
|
#include <extra2d/core/service_locator.h>
|
||||||
#include <extra2d/services/event_service.h>
|
#include <extra2d/extra2d.h>
|
||||||
|
#include <extra2d/graphics/core/render_module.h>
|
||||||
|
#include <extra2d/platform/input_module.h>
|
||||||
|
#include <extra2d/platform/window_module.h>
|
||||||
#include <extra2d/services/camera_service.h>
|
#include <extra2d/services/camera_service.h>
|
||||||
|
#include <extra2d/services/event_service.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
|
||||||
using namespace extra2d;
|
using namespace extra2d;
|
||||||
|
|
||||||
void createSceneGraph(Scene *scene) {
|
void createSceneGraph(Scene *scene) {
|
||||||
|
|
@ -106,6 +107,7 @@ int main(int argc, char *argv[]) {
|
||||||
winCfg.w = 1280;
|
winCfg.w = 1280;
|
||||||
winCfg.h = 720;
|
winCfg.h = 720;
|
||||||
winCfg.priority = 0;
|
winCfg.priority = 0;
|
||||||
|
winCfg.backend = "glfw";
|
||||||
app.use<WindowModule>(winCfg);
|
app.use<WindowModule>(winCfg);
|
||||||
|
|
||||||
RenderModule::Cfg renderCfg;
|
RenderModule::Cfg renderCfg;
|
||||||
|
|
@ -126,7 +128,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
auto *win = app.window();
|
auto *win = app.window();
|
||||||
if (win) {
|
if (win) {
|
||||||
std::cout << "Window: " << win->width() << "x" << win->height() << std::endl;
|
std::cout << "Window: " << win->width() << "x" << win->height()
|
||||||
|
<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto eventService = ServiceLocator::instance().getService<IEventService>();
|
auto eventService = ServiceLocator::instance().getService<IEventService>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue