#ifndef GFX_DIMENSIONS_H1#define GFX_DIMENSIONS_H23/*45This file is for ports that want to enable widescreen.6Change the definitions to the following:78#include <math.h>9#define GFX_DIMENSIONS_FROM_LEFT_EDGE(v) (SCREEN_WIDTH / 2 - SCREEN_HEIGHT / 2 * [current_aspect_ratio] + (v))10#define GFX_DIMENSIONS_FROM_RIGHT_EDGE(v) (SCREEN_WIDTH / 2 + SCREEN_HEIGHT / 2 * [current_aspect_ratio] - (v))11#define GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(v) ((int)floorf(GFX_DIMENSIONS_FROM_LEFT_EDGE(v)))12#define GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(v) ((int)ceilf(GFX_DIMENSIONS_FROM_RIGHT_EDGE(v)))13#define GFX_DIMENSIONS_ASPECT_RATIO [current_aspect_ratio]1415The idea is that SCREEN_WIDTH and SCREEN_HEIGHT are still hardcoded to 320 and 240, and that16x=0 lies at where a 4:3 left edge would be. On 16:9 widescreen, the left edge is hence at -53.33.1718To get better accuracy, consider using floats instead of shorts for coordinates in Vertex and Matrix structures.1920The conversion to integers above is for RECT commands which naturally only accept integer values.21Note that RECT commands must be enhanced to support negative coordinates with this modification.2223*/2425#ifdef WIDESCREEN2627#include <math.h>28#include "pc/gfx/gfx_pc.h"29#define GFX_DIMENSIONS_FROM_LEFT_EDGE(v) (SCREEN_WIDTH / 2 - SCREEN_HEIGHT / 2 * gfx_current_dimensions.aspect_ratio + (v))30#define GFX_DIMENSIONS_FROM_RIGHT_EDGE(v) (SCREEN_WIDTH / 2 + SCREEN_HEIGHT / 2 * gfx_current_dimensions.aspect_ratio - (v))31#define GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(v) ((int)floorf(GFX_DIMENSIONS_FROM_LEFT_EDGE(v)))32#define GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(v) ((int)ceilf(GFX_DIMENSIONS_FROM_RIGHT_EDGE(v)))33#define GFX_DIMENSIONS_ASPECT_RATIO (gfx_current_dimensions.aspect_ratio)3435#else3637#define GFX_DIMENSIONS_FROM_LEFT_EDGE(v) (v)38#define GFX_DIMENSIONS_FROM_RIGHT_EDGE(v) (SCREEN_WIDTH - (v))39#define GFX_DIMENSIONS_RECT_FROM_LEFT_EDGE(v) (v)40#define GFX_DIMENSIONS_RECT_FROM_RIGHT_EDGE(v) (SCREEN_WIDTH - (v))41#define GFX_DIMENSIONS_ASPECT_RATIO (4.0f / 3.0f)4243#endif4445// If screen is taller than it is wide, radius should be equal to SCREEN_HEIGHT since we scale horizontally46#define GFX_DIMENSIONS_FULL_RADIUS (SCREEN_HEIGHT * (GFX_DIMENSIONS_ASPECT_RATIO > 1 ? GFX_DIMENSIONS_ASPECT_RATIO : 1))4748#endif // GFX_DIMENSIONS_H495051