/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "camera.h" #include "display/render.h" #include "world/overworld.h" void cameraUIPush(void) { glPushMatrix(); glLoadIdentity(); glViewport(0, 0, RENDER_WIDTH, RENDER_HEIGHT); glOrtho( 0.0f, (float_t)RENDER_WIDTH, (float_t)RENDER_HEIGHT, 0.0f, -1.0f, 1.0f ); } void cameraUIPop(void) { glPopMatrix(); } void cameraScreenPush(void) { glPushMatrix(); glLoadIdentity(); #if RENDER_USE_FRAMEBUFFER int32_t windowWidth, windowHeight; SDL_GetWindowSize(RENDER_WINDOW, &windowWidth, &windowHeight); glViewport(0, 0, windowWidth, windowHeight); glOrtho( 0.0f, (float_t)windowWidth, (float_t)windowHeight, 0.0f, -1.0f, 1.0f ); #else glOrtho( 0.0f, (float_t)RENDER_WIDTH, (float_t)RENDER_HEIGHT, 0.0f, -1.0f, 1.0f ); #endif } void cameraScreenPop(void) { glPopMatrix(); } void cameraOverworldPush(void) { glPushMatrix(); glLoadIdentity(); glViewport(0, 0, RENDER_WIDTH, RENDER_HEIGHT); glOrtho( 0.0f, (float_t)RENDER_WIDTH, (float_t)RENDER_HEIGHT, 0.0f, -1.0f, 1.0f ); glTranslatef( -((float_t)OVERWORLD_CAMERA_X) + ((float_t)RENDER_WIDTH / 2.0f), -((float_t)OVERWORLD_CAMERA_Y) + ((float_t)RENDER_HEIGHT / 2.0f), 0.0f ); } void cameraOverworldPop(void) { glPopMatrix(); }