MCPcopy Create free account
hub / github.com/AbyssEngine/AbyssEngineOld / render

Method render

src/Abyss/AbyssEngine.cpp:64–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62}
63
64void AbyssEngine::render() const {
65 ImGui_ImplSDLRenderer2_NewFrame();
66 ImGui_ImplSDL2_NewFrame();
67
68 SDL_SetRenderDrawColor(_renderer.get(), 0, 0, 0, 255);
69 SDL_RenderClear(_renderer.get());
70
71 ImGui::NewFrame();
72 if (_currentScene != nullptr) {
73 SDL_SetRenderTarget(_renderer.get(), _renderTexture.get());
74
75 if (_videoStream != nullptr) {
76 _videoStream->render();
77 } else {
78 _currentScene->render();
79
80 if (_cursorImage != nullptr && _mouseState.isVisible() && _mouseOverGameWindow) {
81 int mx, my;
82 _mouseState.getPosition(mx, my);
83 _cursorImage->draw(0, mx + 1, my + 2);
84 }
85 }
86
87 SDL_SetRenderTarget(_renderer.get(), nullptr);
88 SDL_RenderCopy(_renderer.get(), _renderTexture.get(), nullptr, &_renderRect);
89 }
90
91 ImGui::Render();
92 ImGui_ImplSDLRenderer2_RenderDrawData(ImGui::GetDrawData());
93
94 // Is the mouse over an ImGui window, or outside _renderRect? If so, show the cursor, otherwise hide it
95 if (ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow) || !_mouseOverGameWindow) {
96 SDL_ShowCursor(SDL_TRUE);
97 } else {
98 SDL_ShowCursor(SDL_FALSE);
99 }
100
101 SDL_RenderPresent(_renderer.get());
102}
103
104void AbyssEngine::processEvents(const std::chrono::duration<double> deltaTime) {
105 const absl::btree_map<uint8_t, Enums::MouseButton> buttonMap = {

Callers

nothing calls this directly

Calls 3

isVisibleMethod · 0.80
getPositionMethod · 0.80
drawMethod · 0.45

Tested by

no test coverage detected