Fixed loader, main menu and level selector
This commit is contained in:
@ -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;
|
||||
|
||||
@ -52,6 +52,8 @@ public:
|
||||
// Direct access to SDL objects (temporary, will be removed later)
|
||||
SDL_Renderer* getSDLRenderer() const { return m_renderer; }
|
||||
SDL_Window* getSDLWindow() const { return m_window; }
|
||||
// Texture queries
|
||||
void getTextureSize(SDL_Texture* tex, int& w, int& h) const;
|
||||
|
||||
// State queries
|
||||
bool isInitialized() const { return m_initialized; }
|
||||
|
||||
Reference in New Issue
Block a user