mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 06:14:08 +08:00
Change frame control to the scene
This commit is contained in:
@@ -67,5 +67,22 @@ protected:
|
||||
UIRenderer* m_uiRenderer; ///< UI 渲染器指针
|
||||
SDL_Renderer* m_renderer; ///< SDL 渲染器指针
|
||||
EventCallback m_eventCallback; ///< 场景事件回调函数
|
||||
|
||||
void beginFrame() {
|
||||
if (!m_renderer) {
|
||||
SDL_Log("Renderer is null in beginFrame!");
|
||||
return;
|
||||
}
|
||||
// 清屏为白色色背景
|
||||
SDL_SetRenderDrawColor(m_renderer, 255, 255, 255, 255);
|
||||
SDL_RenderClear(m_renderer);
|
||||
//std::cout << "begin frame\n";
|
||||
}
|
||||
|
||||
void endFrame() {
|
||||
// 提交到屏幕
|
||||
//std::cout << "end frame\n";
|
||||
SDL_RenderPresent(m_renderer);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -30,13 +30,13 @@ void GameScene::update() {
|
||||
}
|
||||
|
||||
void GameScene::render() {
|
||||
m_gameRenderer->beginFrame();
|
||||
beginFrame();
|
||||
m_gameRenderer->drawBackground();
|
||||
m_gameRenderer->drawBoard();
|
||||
|
||||
m_gameRenderer->drawPiece(m_gameSession->getSelectedPiece());
|
||||
m_uiRenderer->renderUI(m_gameUIManager->getUIRenderData());
|
||||
m_gameRenderer->endFrame();
|
||||
endFrame();
|
||||
}
|
||||
|
||||
void GameScene::handleClick(float screenX, float screenY) {
|
||||
|
||||
@@ -43,26 +43,6 @@ void MainMenuScene::handleClick(float x, float y) {
|
||||
m_mainMenuUIManager->handleClick(x, y);
|
||||
}
|
||||
|
||||
void MainMenuScene::beginFrame() {
|
||||
// 开始帧渲染的逻辑
|
||||
if (!m_renderer) {
|
||||
SDL_Log("ERROR: Renderer is NULL!\n");
|
||||
return;
|
||||
}
|
||||
// 清屏为白色色背景
|
||||
SDL_SetRenderDrawColor(m_renderer, 255, 255, 255, 255);
|
||||
SDL_RenderClear(m_renderer);
|
||||
//std::cout << "begin frame\n";
|
||||
|
||||
|
||||
}
|
||||
|
||||
void MainMenuScene::endFrame() {
|
||||
// 结束帧渲染的逻辑
|
||||
// 提交到屏幕
|
||||
//std::cout << "end frame\n";
|
||||
SDL_RenderPresent(m_renderer);
|
||||
}
|
||||
|
||||
void MainMenuScene::renderMousePosition(float x, float y) {
|
||||
m_mainMenuUIManager->UpdateMousePositon(x, y);
|
||||
|
||||
@@ -18,6 +18,5 @@ public:
|
||||
private:
|
||||
// 其他私有成员变量和方法
|
||||
std::unique_ptr<MainMenuUIManager> m_mainMenuUIManager = nullptr;
|
||||
void beginFrame();
|
||||
void endFrame();
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user