mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2025-01-17 14:47:19 +01:00
add in High DPI support (aka Retina)
- based on J?rgen's patch with a few bug fixes
This commit is contained in:
parent
0103bc0bff
commit
869a707612
@ -257,6 +257,11 @@ extern "C" {
|
|||||||
#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION"
|
#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION"
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac)
|
||||||
|
*/
|
||||||
|
#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_HIGHDPI_DISABLED"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief An enumeration of hint priorities
|
* \brief An enumeration of hint priorities
|
||||||
|
@ -107,7 +107,8 @@ typedef enum
|
|||||||
SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */
|
SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */
|
||||||
SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */
|
SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */
|
||||||
SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ),
|
SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ),
|
||||||
SDL_WINDOW_FOREIGN = 0x00000800 /**< window not created by SDL */
|
SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */
|
||||||
|
SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported */
|
||||||
} SDL_WindowFlags;
|
} SDL_WindowFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -393,10 +394,11 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window);
|
|||||||
* \param w The width of the window.
|
* \param w The width of the window.
|
||||||
* \param h The height of the window.
|
* \param h The height of the window.
|
||||||
* \param flags The flags for the window, a mask of any of the following:
|
* \param flags The flags for the window, a mask of any of the following:
|
||||||
* ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL,
|
* ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL,
|
||||||
* ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS,
|
* ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS,
|
||||||
* ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED,
|
* ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED,
|
||||||
* ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED.
|
* ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED,
|
||||||
|
* ::SDL_WINDOW_ALLOW_HIGHDPI.
|
||||||
*
|
*
|
||||||
* \return The id of the window created, or zero if window creation failed.
|
* \return The id of the window created, or zero if window creation failed.
|
||||||
*
|
*
|
||||||
@ -899,6 +901,23 @@ extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void);
|
|||||||
*/
|
*/
|
||||||
extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void);
|
extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get the size of a window's underlying drawable (for use with glViewport).
|
||||||
|
*
|
||||||
|
* \param w Pointer to variable for storing the width, may be NULL
|
||||||
|
* \param h Pointer to variable for storing the height, may be NULL
|
||||||
|
*
|
||||||
|
* This may differ from SDL_GetWindowSize if we're rendering to a high-DPI
|
||||||
|
* drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a
|
||||||
|
* platform with high-DPI support (Apple calls this "Retina"), and not disabled
|
||||||
|
* by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint.
|
||||||
|
*
|
||||||
|
* \sa SDL_GetWindowSize()
|
||||||
|
* \sa SDL_CreateWindow()
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w,
|
||||||
|
int *h);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the swap interval for the current OpenGL context.
|
* \brief Set the swap interval for the current OpenGL context.
|
||||||
*
|
*
|
||||||
|
@ -117,7 +117,12 @@ SDL_RendererEventWatch(void *userdata, SDL_Event *event)
|
|||||||
/* Window was resized, reset viewport */
|
/* Window was resized, reset viewport */
|
||||||
int w, h;
|
int w, h;
|
||||||
|
|
||||||
SDL_GetWindowSize(window, &w, &h);
|
if (renderer->GetOutputSize) {
|
||||||
|
renderer->GetOutputSize(renderer, &w, &h);
|
||||||
|
} else {
|
||||||
|
SDL_GetWindowSize(renderer->window, &w, &h);
|
||||||
|
}
|
||||||
|
|
||||||
if (renderer->target) {
|
if (renderer->target) {
|
||||||
renderer->viewport_backup.x = 0;
|
renderer->viewport_backup.x = 0;
|
||||||
renderer->viewport_backup.y = 0;
|
renderer->viewport_backup.y = 0;
|
||||||
@ -335,11 +340,11 @@ SDL_GetRendererOutputSize(SDL_Renderer * renderer, int *w, int *h)
|
|||||||
|
|
||||||
if (renderer->target) {
|
if (renderer->target) {
|
||||||
return SDL_QueryTexture(renderer->target, NULL, NULL, w, h);
|
return SDL_QueryTexture(renderer->target, NULL, NULL, w, h);
|
||||||
|
} else if (renderer->GetOutputSize) {
|
||||||
|
return renderer->GetOutputSize(renderer, w, h);
|
||||||
} else if (renderer->window) {
|
} else if (renderer->window) {
|
||||||
SDL_GetWindowSize(renderer->window, w, h);
|
SDL_GetWindowSize(renderer->window, w, h);
|
||||||
return 0;
|
return 0;
|
||||||
} else if (renderer->GetOutputSize) {
|
|
||||||
return renderer->GetOutputSize(renderer, w, h);
|
|
||||||
} else {
|
} else {
|
||||||
/* This should never happen */
|
/* This should never happen */
|
||||||
SDL_SetError("Renderer doesn't support querying output size");
|
SDL_SetError("Renderer doesn't support querying output size");
|
||||||
|
@ -47,6 +47,7 @@ static const float inv255f = 1.0f / 255.0f;
|
|||||||
static SDL_Renderer *GL_CreateRenderer(SDL_Window * window, Uint32 flags);
|
static SDL_Renderer *GL_CreateRenderer(SDL_Window * window, Uint32 flags);
|
||||||
static void GL_WindowEvent(SDL_Renderer * renderer,
|
static void GL_WindowEvent(SDL_Renderer * renderer,
|
||||||
const SDL_WindowEvent *event);
|
const SDL_WindowEvent *event);
|
||||||
|
static int GL_GetOutputSize(SDL_Renderer * renderer, int *w, int *h);
|
||||||
static int GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture);
|
static int GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture);
|
||||||
static int GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture,
|
static int GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture,
|
||||||
const SDL_Rect * rect, const void *pixels,
|
const SDL_Rect * rect, const void *pixels,
|
||||||
@ -399,6 +400,7 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderer->WindowEvent = GL_WindowEvent;
|
renderer->WindowEvent = GL_WindowEvent;
|
||||||
|
renderer->GetOutputSize = GL_GetOutputSize;
|
||||||
renderer->CreateTexture = GL_CreateTexture;
|
renderer->CreateTexture = GL_CreateTexture;
|
||||||
renderer->UpdateTexture = GL_UpdateTexture;
|
renderer->UpdateTexture = GL_UpdateTexture;
|
||||||
renderer->LockTexture = GL_LockTexture;
|
renderer->LockTexture = GL_LockTexture;
|
||||||
@ -539,6 +541,14 @@ GL_WindowEvent(SDL_Renderer * renderer, const SDL_WindowEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
GL_GetOutputSize(SDL_Renderer * renderer, int *w, int *h)
|
||||||
|
{
|
||||||
|
SDL_GL_GetDrawableSize(renderer->window, w, h);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
SDL_FORCE_INLINE int
|
SDL_FORCE_INLINE int
|
||||||
power_of_2(int input)
|
power_of_2(int input)
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#define VIDEO_USAGE \
|
#define VIDEO_USAGE \
|
||||||
"[--video driver] [--renderer driver] [--gldebug] [--info all|video|modes|render|event] [--log all|error|system|audio|video|render|input] [--display N] [--fullscreen | --fullscreen-desktop | --windows N] [--title title] [--icon icon.bmp] [--center | --position X,Y] [--geometry WxH] [--min-geometry WxH] [--max-geometry WxH] [--logical WxH] [--scale N] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]"
|
"[--video driver] [--renderer driver] [--gldebug] [--info all|video|modes|render|event] [--log all|error|system|audio|video|render|input] [--display N] [--fullscreen | --fullscreen-desktop | --windows N] [--title title] [--icon icon.bmp] [--center | --position X,Y] [--geometry WxH] [--min-geometry WxH] [--max-geometry WxH] [--logical WxH] [--scale N] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab] [--allow-hidpi]"
|
||||||
|
|
||||||
#define AUDIO_USAGE \
|
#define AUDIO_USAGE \
|
||||||
"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]"
|
"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]"
|
||||||
@ -194,6 +194,10 @@ SDLTest_CommonArg(SDLTest_CommonState * state, int index)
|
|||||||
state->num_windows = 1;
|
state->num_windows = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
if (SDL_strcasecmp(argv[index], "--allow-highdpi") == 0) {
|
||||||
|
state->window_flags |= SDL_WINDOW_ALLOW_HIGHDPI;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
if (SDL_strcasecmp(argv[index], "--windows") == 0) {
|
if (SDL_strcasecmp(argv[index], "--windows") == 0) {
|
||||||
++index;
|
++index;
|
||||||
if (!argv[index] || !SDL_isdigit(*argv[index])) {
|
if (!argv[index] || !SDL_isdigit(*argv[index])) {
|
||||||
|
@ -224,6 +224,7 @@ struct SDL_VideoDevice
|
|||||||
void (*GL_UnloadLibrary) (_THIS);
|
void (*GL_UnloadLibrary) (_THIS);
|
||||||
SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
|
SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
|
||||||
int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
|
int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
|
||||||
|
void (*GL_GetDrawableSize) (_THIS, SDL_Window * window, int *w, int *h);
|
||||||
int (*GL_SetSwapInterval) (_THIS, int interval);
|
int (*GL_SetSwapInterval) (_THIS, int interval);
|
||||||
int (*GL_GetSwapInterval) (_THIS);
|
int (*GL_GetSwapInterval) (_THIS);
|
||||||
void (*GL_SwapWindow) (_THIS, SDL_Window * window);
|
void (*GL_SwapWindow) (_THIS, SDL_Window * window);
|
||||||
|
@ -1187,6 +1187,7 @@ SDL_Window *
|
|||||||
SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
|
SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
|
||||||
{
|
{
|
||||||
SDL_Window *window;
|
SDL_Window *window;
|
||||||
|
const char *hint;
|
||||||
|
|
||||||
if (!_this) {
|
if (!_this) {
|
||||||
/* Initialize the video system if needed */
|
/* Initialize the video system if needed */
|
||||||
@ -1245,6 +1246,17 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
|
|||||||
window->flags = ((flags & CREATE_FLAGS) | SDL_WINDOW_HIDDEN);
|
window->flags = ((flags & CREATE_FLAGS) | SDL_WINDOW_HIDDEN);
|
||||||
window->brightness = 1.0f;
|
window->brightness = 1.0f;
|
||||||
window->next = _this->windows;
|
window->next = _this->windows;
|
||||||
|
|
||||||
|
/* Unless the user has specified the high-DPI disabling hint, respect the
|
||||||
|
* SDL_WINDOW_ALLOW_HIGHDPI flag.
|
||||||
|
*/
|
||||||
|
hint = SDL_GetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED);
|
||||||
|
if (!hint || *hint != '1') {
|
||||||
|
if ((flags & SDL_WINDOW_ALLOW_HIGHDPI)) {
|
||||||
|
window->flags |= SDL_WINDOW_ALLOW_HIGHDPI;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (_this->windows) {
|
if (_this->windows) {
|
||||||
_this->windows->prev = window;
|
_this->windows->prev = window;
|
||||||
}
|
}
|
||||||
@ -2813,6 +2825,17 @@ SDL_GL_GetCurrentContext(void)
|
|||||||
return (SDL_GLContext)SDL_TLSGet(_this->current_glctx_tls);
|
return (SDL_GLContext)SDL_TLSGet(_this->current_glctx_tls);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SDL_GL_GetDrawableSize(SDL_Window * window, int *w, int *h)
|
||||||
|
{
|
||||||
|
CHECK_WINDOW_MAGIC(window, );
|
||||||
|
|
||||||
|
if (_this->GL_GetDrawableSize) {
|
||||||
|
_this->GL_GetDrawableSize(_this, window, w, h);
|
||||||
|
} else {
|
||||||
|
SDL_GetWindowSize(window, w, h);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
SDL_GL_SetSwapInterval(int interval)
|
SDL_GL_SetSwapInterval(int interval)
|
||||||
{
|
{
|
||||||
|
@ -54,6 +54,8 @@ extern void Cocoa_GL_UnloadLibrary(_THIS);
|
|||||||
extern SDL_GLContext Cocoa_GL_CreateContext(_THIS, SDL_Window * window);
|
extern SDL_GLContext Cocoa_GL_CreateContext(_THIS, SDL_Window * window);
|
||||||
extern int Cocoa_GL_MakeCurrent(_THIS, SDL_Window * window,
|
extern int Cocoa_GL_MakeCurrent(_THIS, SDL_Window * window,
|
||||||
SDL_GLContext context);
|
SDL_GLContext context);
|
||||||
|
extern void Cocoa_GL_GetDrawableSize(_THIS, SDL_Window * window,
|
||||||
|
int * w, int * h);
|
||||||
extern int Cocoa_GL_SetSwapInterval(_THIS, int interval);
|
extern int Cocoa_GL_SetSwapInterval(_THIS, int interval);
|
||||||
extern int Cocoa_GL_GetSwapInterval(_THIS);
|
extern int Cocoa_GL_GetSwapInterval(_THIS);
|
||||||
extern void Cocoa_GL_SwapWindow(_THIS, SDL_Window * window);
|
extern void Cocoa_GL_SwapWindow(_THIS, SDL_Window * window);
|
||||||
|
@ -35,6 +35,18 @@
|
|||||||
|
|
||||||
#define DEFAULT_OPENGL "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib"
|
#define DEFAULT_OPENGL "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib"
|
||||||
|
|
||||||
|
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1070
|
||||||
|
/* New methods for converting to and from backing store pixels, taken from
|
||||||
|
* AppKite/NSView.h in 10.8 SDK. */
|
||||||
|
@interface NSView (Backing)
|
||||||
|
- (NSPoint)convertPointToBacking:(NSPoint)aPoint;
|
||||||
|
- (NSPoint)convertPointFromBacking:(NSPoint)aPoint;
|
||||||
|
- (NSSize)convertSizeToBacking:(NSSize)aSize;
|
||||||
|
- (NSSize)convertSizeFromBacking:(NSSize)aSize;
|
||||||
|
- (NSRect)convertRectToBacking:(NSRect)aRect;
|
||||||
|
- (NSRect)convertRectFromBacking:(NSRect)aRect;
|
||||||
|
@end
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef kCGLPFAOpenGLProfile
|
#ifndef kCGLPFAOpenGLProfile
|
||||||
#define kCGLPFAOpenGLProfile 99
|
#define kCGLPFAOpenGLProfile 99
|
||||||
@ -294,6 +306,28 @@ Cocoa_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Cocoa_GL_GetDrawableSize(_THIS, SDL_Window * window, int * w, int * h)
|
||||||
|
{
|
||||||
|
SDL_WindowData *windata = (SDL_WindowData *) window->driverdata;
|
||||||
|
NSView *contentView = [windata->nswindow contentView];
|
||||||
|
NSRect viewport = [contentView bounds];
|
||||||
|
|
||||||
|
/* This gives us the correct viewport for a Retina-enabled view, only
|
||||||
|
* supported on 10.7+. */
|
||||||
|
if ([contentView respondsToSelector:@selector(convertRectToBacking:)]) {
|
||||||
|
viewport = [contentView convertRectToBacking:viewport];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (w) {
|
||||||
|
*w = viewport.size.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (h) {
|
||||||
|
*h = viewport.size.height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
Cocoa_GL_SetSwapInterval(_THIS, int interval)
|
Cocoa_GL_SetSwapInterval(_THIS, int interval)
|
||||||
{
|
{
|
||||||
|
@ -119,6 +119,7 @@ Cocoa_CreateDevice(int devindex)
|
|||||||
device->GL_UnloadLibrary = Cocoa_GL_UnloadLibrary;
|
device->GL_UnloadLibrary = Cocoa_GL_UnloadLibrary;
|
||||||
device->GL_CreateContext = Cocoa_GL_CreateContext;
|
device->GL_CreateContext = Cocoa_GL_CreateContext;
|
||||||
device->GL_MakeCurrent = Cocoa_GL_MakeCurrent;
|
device->GL_MakeCurrent = Cocoa_GL_MakeCurrent;
|
||||||
|
device->GL_GetDrawableSize = Cocoa_GL_GetDrawableSize;
|
||||||
device->GL_SetSwapInterval = Cocoa_GL_SetSwapInterval;
|
device->GL_SetSwapInterval = Cocoa_GL_SetSwapInterval;
|
||||||
device->GL_GetSwapInterval = Cocoa_GL_GetSwapInterval;
|
device->GL_GetSwapInterval = Cocoa_GL_GetSwapInterval;
|
||||||
device->GL_SwapWindow = Cocoa_GL_SwapWindow;
|
device->GL_SwapWindow = Cocoa_GL_SwapWindow;
|
||||||
|
@ -34,6 +34,13 @@
|
|||||||
#include "SDL_cocoamouse.h"
|
#include "SDL_cocoamouse.h"
|
||||||
#include "SDL_cocoaopengl.h"
|
#include "SDL_cocoaopengl.h"
|
||||||
|
|
||||||
|
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1070
|
||||||
|
/* Taken from AppKit/NSOpenGLView.h in 10.8 SDK. */
|
||||||
|
@interface NSView (NSOpenGLSurfaceResolution)
|
||||||
|
- (BOOL)wantsBestResolutionOpenGLSurface;
|
||||||
|
- (void)setWantsBestResolutionOpenGLSurface:(BOOL)flag;
|
||||||
|
@end
|
||||||
|
#endif
|
||||||
|
|
||||||
static Uint32 s_moveHack;
|
static Uint32 s_moveHack;
|
||||||
|
|
||||||
@ -739,6 +746,13 @@ Cocoa_CreateWindow(_THIS, SDL_Window * window)
|
|||||||
/* Create a default view for this window */
|
/* Create a default view for this window */
|
||||||
rect = [nswindow contentRectForFrameRect:[nswindow frame]];
|
rect = [nswindow contentRectForFrameRect:[nswindow frame]];
|
||||||
NSView *contentView = [[SDLView alloc] initWithFrame:rect];
|
NSView *contentView = [[SDLView alloc] initWithFrame:rect];
|
||||||
|
|
||||||
|
if ((window->flags & SDL_WINDOW_ALLOW_HIGHDPI) > 0) {
|
||||||
|
if ([contentView respondsToSelector:@selector(setWantsBestResolutionOpenGLSurface:)]) {
|
||||||
|
[contentView setWantsBestResolutionOpenGLSurface:YES];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[nswindow setContentView: contentView];
|
[nswindow setContentView: contentView];
|
||||||
[contentView release];
|
[contentView release];
|
||||||
|
|
||||||
|
@ -180,6 +180,7 @@ main(int argc, char *argv[])
|
|||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
Uint32 then, now, frames;
|
Uint32 then, now, frames;
|
||||||
int status;
|
int status;
|
||||||
|
int dw, dh;
|
||||||
|
|
||||||
/* Enable standard application logging */
|
/* Enable standard application logging */
|
||||||
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
|
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
|
||||||
@ -254,6 +255,10 @@ main(int argc, char *argv[])
|
|||||||
SDL_GetCurrentDisplayMode(0, &mode);
|
SDL_GetCurrentDisplayMode(0, &mode);
|
||||||
SDL_Log("Screen BPP : %d\n", SDL_BITSPERPIXEL(mode.format));
|
SDL_Log("Screen BPP : %d\n", SDL_BITSPERPIXEL(mode.format));
|
||||||
SDL_Log("Swap Interval : %d\n", SDL_GL_GetSwapInterval());
|
SDL_Log("Swap Interval : %d\n", SDL_GL_GetSwapInterval());
|
||||||
|
SDL_GetWindowSize(state->windows[0], &dw, &dh);
|
||||||
|
SDL_Log("Window Size : %d,%d\n", dw, dh);
|
||||||
|
SDL_GL_GetDrawableSize(state->windows[0], &dw, &dh);
|
||||||
|
SDL_Log("Draw Size : %d,%d\n", dw, dh);
|
||||||
SDL_Log("\n");
|
SDL_Log("\n");
|
||||||
SDL_Log("Vendor : %s\n", glGetString(GL_VENDOR));
|
SDL_Log("Vendor : %s\n", glGetString(GL_VENDOR));
|
||||||
SDL_Log("Renderer : %s\n", glGetString(GL_RENDERER));
|
SDL_Log("Renderer : %s\n", glGetString(GL_RENDERER));
|
||||||
@ -322,7 +327,7 @@ main(int argc, char *argv[])
|
|||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
glDepthFunc(GL_LESS);
|
glDepthFunc(GL_LESS);
|
||||||
glShadeModel(GL_SMOOTH);
|
glShadeModel(GL_SMOOTH);
|
||||||
|
|
||||||
/* Main render loop */
|
/* Main render loop */
|
||||||
frames = 0;
|
frames = 0;
|
||||||
then = SDL_GetTicks();
|
then = SDL_GetTicks();
|
||||||
@ -336,7 +341,7 @@ main(int argc, char *argv[])
|
|||||||
for (i = 0; i < state->num_windows; ++i) {
|
for (i = 0; i < state->num_windows; ++i) {
|
||||||
int w, h;
|
int w, h;
|
||||||
SDL_GL_MakeCurrent(state->windows[i], context);
|
SDL_GL_MakeCurrent(state->windows[i], context);
|
||||||
SDL_GetWindowSize(state->windows[i], &w, &h);
|
SDL_GL_GetDrawableSize(state->windows[i], &w, &h);
|
||||||
glViewport(0, 0, w, h);
|
glViewport(0, 0, w, h);
|
||||||
Render();
|
Render();
|
||||||
SDL_GL_SwapWindow(state->windows[i]);
|
SDL_GL_SwapWindow(state->windows[i]);
|
||||||
|
Loading…
Reference in New Issue
Block a user