mirror of
https://github.com/Ryujinx/SDL.git
synced 2025-06-04 03:08:25 +00:00
An existing hint lets apps that don't need the timer resolution changed avoid this, to save battery, etc, but this fixes several problems in timing, audio callbacks not firing fast enough, etc. Fixes Bugzilla #2944.
82 lines
1.9 KiB
C
82 lines
1.9 KiB
C
/*
|
|
* rectangles.c
|
|
* written by Holmes Futrell
|
|
* use however you want
|
|
*/
|
|
|
|
#include "SDL.h"
|
|
#include <time.h>
|
|
#include "common.h"
|
|
|
|
void
|
|
render(SDL_Renderer *renderer)
|
|
{
|
|
|
|
Uint8 r, g, b;
|
|
/* Come up with a random rectangle */
|
|
SDL_Rect rect;
|
|
rect.w = randomInt(64, 128);
|
|
rect.h = randomInt(64, 128);
|
|
rect.x = randomInt(0, SCREEN_WIDTH);
|
|
rect.y = randomInt(0, SCREEN_HEIGHT);
|
|
|
|
/* Come up with a random color */
|
|
r = randomInt(50, 255);
|
|
g = randomInt(50, 255);
|
|
b = randomInt(50, 255);
|
|
|
|
/* Fill the rectangle in the color */
|
|
SDL_SetRenderDrawColor(renderer, r, g, b, 255);
|
|
SDL_RenderFillRect(renderer, &rect);
|
|
|
|
/* update screen */
|
|
SDL_RenderPresent(renderer);
|
|
|
|
}
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
if (SDL_Init(SDL_INIT_VIDEO/* | SDL_INIT_AUDIO */) < 0)
|
|
{
|
|
printf("Unable to initialize SDL");
|
|
}
|
|
|
|
SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN);
|
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
|
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
|
|
|
int landscape = 1;
|
|
int modes = SDL_GetNumDisplayModes(0);
|
|
int sx = 0, sy = 0;
|
|
for (int i = 0; i < modes; i++)
|
|
{
|
|
SDL_DisplayMode mode;
|
|
SDL_GetDisplayMode(0, i, &mode);
|
|
if (landscape ? mode.w > sx : mode.h > sy)
|
|
{
|
|
sx = mode.w;
|
|
sy = mode.h;
|
|
}
|
|
}
|
|
|
|
printf("picked: %d %d\n", sx, sy);
|
|
|
|
SDL_Window *_sdl_window = NULL;
|
|
SDL_GLContext _sdl_context = NULL;
|
|
|
|
_sdl_window = SDL_CreateWindow("fred",
|
|
0, 0,
|
|
sx, sy,
|
|
SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS);
|
|
|
|
SDL_SetHint("SDL_HINT_ORIENTATIONS", "LandscapeLeft LandscapeRight");
|
|
|
|
int ax = 0, ay = 0;
|
|
SDL_GetWindowSize(_sdl_window, &ax, &ay);
|
|
|
|
printf("given: %d %d\n", ax, ay);
|
|
|
|
return 0;
|
|
}
|