forked from len0rd/rockbox
Tested on Linux, MacOS, and Windows. On MacOS and Windows, we constrain the window's aspect ratio by adjusting the size when responding to resize events. On Linux, I've not found a way to do so, that doesn't result in fairly stuttery behavior and weird jumpy behavior of the resize handle, possibly depending on your window manager. So, black bars are displayed around the content. Maybe someone, at some point, finds a way. (SDL3 seems to have SDL_SetWindowAspectRatio) When the window is in fullscreen, black bars are display necessarily, of course, on all systems, unless the player GUI has exactly the same aspect ratio as the screen... Change-Id: I535e6617497611ea57a4c19e08e552f990859cfe
47 lines
1.7 KiB
C
47 lines
1.7 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2006 Dan Everton
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef __LCDSDL_H__
|
|
#define __LCDSDL_H__
|
|
|
|
#include "lcd.h"
|
|
#include "SDL.h"
|
|
|
|
/* Default display zoom level */
|
|
extern SDL_Surface *gui_surface;
|
|
extern SDL_Renderer *sdlRenderer;
|
|
extern SDL_Window *window;
|
|
|
|
void sdl_get_window_dimensions(int *w, int *h);
|
|
int sdl_update_window(void);
|
|
void sdl_window_needs_update(void);
|
|
|
|
void sdl_update_rect(SDL_Surface *surface, int x_start, int y_start, int width,
|
|
int height, int max_x, int max_y,
|
|
unsigned long (*getpixel)(int, int));
|
|
|
|
void sdl_gui_update(SDL_Surface *surface, int x_start, int y_start, int width,
|
|
int height, int max_x, int max_y, int ui_x, int ui_y);
|
|
|
|
void sdl_set_gradient(SDL_Surface *surface, SDL_Color *start, SDL_Color *end,
|
|
int first, int steps);
|
|
|
|
#endif /* #ifndef __LCDSDL_H__ */
|