mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 06:14:08 +08:00
Using WindowManager to begin and end frame
This commit is contained in:
@@ -68,7 +68,7 @@ protected:
|
||||
SDL_Renderer* m_renderer; ///< SDL 渲染器指针
|
||||
EventCallback m_eventCallback; ///< 场景事件回调函数
|
||||
|
||||
void beginFrame() {
|
||||
/*void beginFrame() {
|
||||
if (!m_renderer) {
|
||||
SDL_Log("Renderer is null in beginFrame!");
|
||||
return;
|
||||
@@ -77,12 +77,12 @@ protected:
|
||||
SDL_SetRenderDrawColor(m_renderer, 255, 255, 255, 255);
|
||||
SDL_RenderClear(m_renderer);
|
||||
//std::cout << "begin frame\n";
|
||||
}
|
||||
}*/
|
||||
|
||||
void endFrame() {
|
||||
/*void endFrame() {
|
||||
// 提交到屏幕
|
||||
//std::cout << "end frame\n";
|
||||
SDL_RenderPresent(m_renderer);
|
||||
}
|
||||
}*/
|
||||
};
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ private:
|
||||
std::stack<std::shared_ptr<Scene>> m_scenes; ///< 场景栈,存储场景层级关系(使用 shared_ptr)
|
||||
std::unordered_map<std::string, std::shared_ptr<Scene>> m_sceneCache; ///< 场景缓存,按名字缓存场景以便切换时复用
|
||||
std::unordered_map<std::string, std::function<std::shared_ptr<Scene>()>> m_sceneFactories; ///< 场景工厂映射,按名字动态创建场景实例
|
||||
|
||||
|
||||
/**
|
||||
* @brief 获取窗口尺寸的辅助方法
|
||||
* @return 返回 {宽度, 高度},如果获取失败则返回默认值 {1600, 900}
|
||||
|
||||
@@ -33,7 +33,7 @@ void GameScene::update() {
|
||||
}
|
||||
|
||||
void GameScene::render() {
|
||||
beginFrame();
|
||||
|
||||
m_boardRenderer->drawBackground();
|
||||
m_boardRenderer->drawBoard();
|
||||
|
||||
@@ -41,7 +41,7 @@ void GameScene::render() {
|
||||
m_boardRenderer->drawMovementRange();
|
||||
m_boardRenderer->renderBlackOverlay();
|
||||
m_uiRenderer->renderUI(m_gameUIManager->getUIRenderData());
|
||||
endFrame();
|
||||
|
||||
}
|
||||
|
||||
void GameScene::handleClick(float screenX, float screenY) {
|
||||
|
||||
@@ -31,11 +31,11 @@ void MainMenuScene::update() {
|
||||
}
|
||||
|
||||
void MainMenuScene::render() {
|
||||
beginFrame();
|
||||
|
||||
// 渲染场景内容
|
||||
const UIRenderData& uiRenderData = m_mainMenuUIManager->getUIRenderData();
|
||||
m_uiRenderer->renderUI(uiRenderData);
|
||||
endFrame();
|
||||
|
||||
}
|
||||
|
||||
void MainMenuScene::handleClick(float x, float y) {
|
||||
|
||||
Reference in New Issue
Block a user