Fixed dolphin aspect ratio
This commit is contained in:
@@ -57,9 +57,9 @@ errorret_t screenBind() {
|
||||
switch(SCREEN.mode) {
|
||||
case SCREEN_MODE_BACKBUFFER: {
|
||||
#if defined(DUSK_DISPLAY_WIDTH) && defined(DUSK_DISPLAY_HEIGHT)
|
||||
SCREEN.width = DUSK_DISPLAY_WIDTH;
|
||||
SCREEN.height = DUSK_DISPLAY_HEIGHT;
|
||||
SCREEN.aspect = (float_t)DUSK_DISPLAY_WIDTH / (float_t)DUSK_DISPLAY_HEIGHT;
|
||||
SCREEN.aspect = frameBufferGetAspect(FRAMEBUFFER_BOUND);
|
||||
SCREEN.width = SCREEN.height * SCREEN.aspect;
|
||||
#else
|
||||
SCREEN.width = frameBufferGetWidth(FRAMEBUFFER_BOUND);
|
||||
SCREEN.height = frameBufferGetHeight(FRAMEBUFFER_BOUND);
|
||||
@@ -415,15 +415,14 @@ void screenUpdateScan(void) {
|
||||
#ifdef DUSK_DISPLAY_OVERSCAN
|
||||
SCREEN.scanX = DUSK_DISPLAY_OVERSCAN;
|
||||
SCREEN.scanY = DUSK_DISPLAY_OVERSCAN;
|
||||
SCREEN.scanWidth = SCREEN.width - DUSK_DISPLAY_OVERSCAN * 2;
|
||||
SCREEN.scanHeight = SCREEN.height - DUSK_DISPLAY_OVERSCAN * 2;
|
||||
#else
|
||||
SCREEN.scanX = 0;
|
||||
SCREEN.scanY = 0;
|
||||
SCREEN.scanWidth = SCREEN.width;
|
||||
SCREEN.scanHeight = SCREEN.height;
|
||||
#endif
|
||||
|
||||
SCREEN.scanWidth = SCREEN.width - (SCREEN.scanX * 2);
|
||||
SCREEN.scanHeight = SCREEN.height - (SCREEN.scanY * 2);
|
||||
|
||||
#ifdef DUSK_DISPLAY_SIZE_DYNAMIC
|
||||
// Find the smallest standard ratio >= the screen aspect.
|
||||
float_t targetRatio = -1.0f;
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
#define TILE_SIZE_PIXELS 24
|
||||
|
||||
#define CHUNK_WIDTH 12
|
||||
#define CHUNK_WIDTH 16
|
||||
#define CHUNK_HEIGHT 16
|
||||
#define CHUNK_DEPTH 8
|
||||
|
||||
#define CHUNK_TILE_COUNT (CHUNK_WIDTH * CHUNK_HEIGHT * CHUNK_DEPTH)
|
||||
|
||||
#define MAP_CHUNK_WIDTH 5
|
||||
#define MAP_CHUNK_WIDTH 4
|
||||
#define MAP_CHUNK_HEIGHT 4
|
||||
#define MAP_CHUNK_DEPTH 3
|
||||
#define MAP_CHUNK_COUNT (MAP_CHUNK_WIDTH * MAP_CHUNK_HEIGHT * MAP_CHUNK_DEPTH)
|
||||
|
||||
@@ -50,7 +50,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) {
|
||||
float_t fov = glm_rad(45.0f);
|
||||
glm_perspective(
|
||||
fov,
|
||||
(float_t)SCREEN.width / (float_t)SCREEN.height,
|
||||
SCREEN.aspect,
|
||||
0.1f,
|
||||
100.0f,
|
||||
proj
|
||||
@@ -63,17 +63,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) {
|
||||
float_t z = (worldH * 0.5f) / tanf(fov * 0.5f);
|
||||
vec3 worldPosVec;
|
||||
rpgCameraGetPosition(worldPosVec);
|
||||
float_t offset = -32.0f * (worldH / TILE_SIZE_PIXELS);
|
||||
|
||||
// consolePrint(
|
||||
// "FOV: %f, Aspect: %f, WorldH: %f, Z: %f, Offset: %f, ScreenH: %d",
|
||||
// fov,
|
||||
// (float_t)SCREEN.width / (float_t)SCREEN.height,
|
||||
// worldH,
|
||||
// z,
|
||||
// offset,
|
||||
// SCREEN.height
|
||||
// );
|
||||
float_t offset = -24.0f * (worldH / TILE_SIZE_PIXELS);
|
||||
|
||||
glm_vec3_add(worldPosVec, (vec3){ 0.5f, 0.5f, 0.5f }, worldPosVec);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user