Fixed loader, main menu and level selector

This commit is contained in:
2025-08-17 16:51:33 +02:00
parent e591aaba45
commit d75bfcf4d0
11 changed files with 1034 additions and 57 deletions

View File

@ -82,16 +82,35 @@ void RenderManager::beginFrame() {
return;
}
// Clear the screen
// Trace beginFrame entry
{
FILE* f = fopen("tetris_trace.log", "a"); if (f) { fprintf(f, "RenderManager::beginFrame entry\n"); fclose(f); }
}
// Clear the screen (wrapped with trace)
clear(12, 12, 16, 255); // Dark background similar to original
// Trace after clear
{
FILE* f = fopen("tetris_trace.log", "a"); if (f) { fprintf(f, "RenderManager::beginFrame after clear\n"); fclose(f); }
}
}
void RenderManager::endFrame() {
if (!m_initialized || !m_renderer) {
return;
}
// Trace before present
{
FILE* f = fopen("tetris_trace.log", "a"); if (f) { fprintf(f, "RenderManager::endFrame before present\n"); fclose(f); }
}
SDL_RenderPresent(m_renderer);
// Trace after present
{
FILE* f = fopen("tetris_trace.log", "a"); if (f) { fprintf(f, "RenderManager::endFrame after present\n"); fclose(f); }
}
}
void RenderManager::setLogicalSize(int width, int height) {
@ -146,7 +165,14 @@ void RenderManager::renderTexture(SDL_Texture* texture, const SDL_FRect* src, co
return;
}
// Trace renderTexture usage
{
FILE* f = fopen("tetris_trace.log", "a"); if (f) { fprintf(f, "RenderManager::renderTexture entry tex=%llu src=%p dst=%p\n", (unsigned long long)(uintptr_t)texture, (void*)src, (void*)dst); fclose(f); }
}
SDL_RenderTexture(m_renderer, texture, src, dst);
{
FILE* f = fopen("tetris_trace.log", "a"); if (f) { fprintf(f, "RenderManager::renderTexture after SDL_RenderTexture tex=%llu\n", (unsigned long long)(uintptr_t)texture); fclose(f); }
}
}
void RenderManager::renderTexture(SDL_Texture* texture, float x, float y) {
@ -230,6 +256,15 @@ void RenderManager::getWindowSize(int& width, int& height) const {
height = m_windowHeight;
}
void RenderManager::getTextureSize(SDL_Texture* tex, int& w, int& h) const {
if (!tex) { w = 0; h = 0; return; }
// SDL3 provides SDL_GetTextureSize which accepts float or int pointers depending on overloads
float fw = 0.0f, fh = 0.0f;
SDL_GetTextureSize(tex, &fw, &fh);
w = int(fw + 0.5f);
h = int(fh + 0.5f);
}
void RenderManager::updateLogicalScale() {
if (!m_initialized || !m_renderer) {
return;