74 lines
1.4 KiB
C
74 lines
1.4 KiB
C
/**
|
|
* 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();
|
|
} |