Commit graph

6228 commits

Author SHA1 Message Date
Ryan C. Gordon
98a222e974 SDL_RegisterEvents() now rejects requests for numevents <= 0.
--HG--
extra : rebase_source : b45e0465ab759f92595b8cb0cbcad22d429f27f7
2013-08-08 15:04:30 -07:00
Jørgen P. Tjernø
4f1c2fd2c3 Mac: Fix mouse tap on 10.5.
There's no Block support in the runtime on 10.5, so the old code
wouldn't work.
2013-08-08 13:29:44 -07:00
Ryan C. Gordon
f43141b289 Backed out changeset 3f487d7d2d1d
This breaks applications.
2013-08-08 13:22:21 -07:00
Ryan C. Gordon
f3280d289a Send the SDL_QUIT when last window is destroyed, not during its close event.
--HG--
extra : rebase_source : 1a30ff486e98282c7d6a05d64eea0c4f3e026c41
2013-08-08 12:49:29 -07:00
Jørgen P. Tjernø
cf76f36660 Mac: Don't enable SDL_MAC_NO_SANDBOX by default.
To get this functionality, you need to use -DSDL_MAC_NO_SANDBOX=1 in
your CFLAGS.
2013-08-08 12:48:37 -07:00
Sam Lantinga
9f90ffbc9f Fixed crash if SDL_GetThreadName() is passed a NULL thread. 2013-08-08 12:21:26 -07:00
Sam Lantinga
b47f785f57 Fixed whitespace 2013-08-08 12:20:22 -07:00
Edward Rudd
396c5b8e79 use @rpath for OS X Shared Library as well 2013-08-08 11:41:35 -04:00
Gabriel Jacobo
29c4f05ed5 Add some protection against double init of the Android audio backend 2013-08-08 09:47:42 -03:00
Sam Lantinga
5a167e03cd Fixed compile error 2013-08-08 02:34:21 -07:00
Sam Lantinga
780f3a273d Fixed bug 2009 - Creating texture from 32-bit surface with colorkey and per-surface alpha ignores the colorkey
To fix this we need to ignore the alpha channel in the colorkey comparison, which is the way colorkey comparisons are defined in SDL.

We also need to reset the alpha and color modulation when converting a surface.
2013-08-08 02:30:32 -07:00
Sam Lantinga
a2e47469fc autogen.sh on development system 2013-08-08 01:59:36 -07:00
Sam Lantinga
0df5870993 Updated README to match new website description 2013-08-08 01:59:19 -07:00
Sam Lantinga
88b0f42281 Explicitly use the RTLD_LOCAL flag since that's the behavior we want.
The default on Linux is RTLD_LOCAL, the default on Mac OS X is RTLD_GLOBAL.
2013-08-07 17:26:28 -07:00
Sam Lantinga
da3326eb95 The return value of SDL_MostSignificantBitIndex32(0) is defined as -1.
--HG--
extra : rebase_source : b9f0ed0a769617991e6eadf9d6a3efa17112d1a4
2013-08-07 16:32:51 -07:00
Jørgen P. Tjernø
5d1bee0f17 Ensure that the right window is current in SDL_GL_SwapWindow. 2013-08-07 16:29:28 -07:00
Jørgen P. Tjernø
9fb9406bbc Mac: Support for multiple contexts per SDL_Window. 2013-08-07 16:29:25 -07:00
Jørgen P. Tjernø
20c8287efc Mac: Don't -[NSOpenGLContext update] on (potentially) the wrong thread.
If the user is using their context from a non-main thread, we could be
calling -[NSOpenGLContext update] on our thread, while they were
accessing it on their thread.

With this change, we schedule updates when the event comes in on the
main thread, and act on them when the user calls SDL_GL_MakeCurrent or
SDL_GL_SwapWindow.
2013-08-07 16:29:21 -07:00
Jørgen P. Tjernø
8d8238f8ae Mac: Better mouse-grab if you define SDL_MAC_NO_SANDBOX.
This uses a better mouse grab if you define SDL_MAC_NO_SANDBOX. This
mouse grab uses CGEventTapCreate, which you cannot access if you have
sandboxing enabled.
2013-08-07 16:29:15 -07:00
Sam Lantinga
b03f072d95 Updated the name of the iOS platform 2013-08-07 14:00:41 -07:00
Ryan C. Gordon
ff5cf27049 Whoops, forgot to commit this piece. 2013-08-07 12:17:33 -07:00
Ryan C. Gordon
009e12858b SDL_Init() is now just a wrapper around SDL_InitSubSystem(). 2013-08-07 11:14:16 -07:00
Ryan C. Gordon
d99a4adff9 SDL_*Parachute() are no-ops, remove them. 2013-08-07 11:12:11 -07:00
Ryan C. Gordon
8c143ffe40 Removed SDL_AssertionsInit(). It's a no-op, let's keep it that way. :) 2013-08-07 11:00:44 -07:00
Sam Lantinga
2e821930a3 Fix building the tests with Visual Studio 2012 (thanks Isaac!) 2013-08-07 09:20:41 -07:00
Sam Lantinga
89c3ac1eab Reset the viewport when we reset the other D3D state.
From Sythical:

Hello, I've created a simple SDL2 application which draws a texture on the screen. The problem I'm having is that if I launch another program which loads the UAC popup or if I lock my PC and then login again, the application stops drawing the texture. I tried adding SDL_Delay(10000) after SDL_RenderPresent(renderer). This made the texture stay on the screen for a little bit but the texture wasn't drawn again after the delay. Here's my code:

#include "SDL.h"

int main(int argc, char *argv[])
{
    SDL_Renderer *renderer;
    SDL_Window *window;
    SDL_Surface *surface;
    SDL_Texture *rect_texture;
    SDL_Event main_event;
    SDL_Rect rect_data;
    int enable_vsync = 1;

    if(SDL_Init(SDL_INIT_VIDEO) < 0) return 1;

    window = SDL_CreateWindow("SDL2 Application", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 600, 600, SDL_WINDOW_RESIZABLE);

    renderer = SDL_CreateRenderer(window, -1, enable_vsync ? SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC : SDL_RENDERER_ACCELERATED);
    SDL_SetRenderDrawColor(renderer, 20, 20, 30, 255);

    surface = SDL_LoadBMP("icon.bmp");
    rect_texture = SDL_CreateTextureFromSurface(renderer, surface);

    rect_data.w = 32; rect_data.h = 32;
    rect_data.x = 300; rect_data.y = 300;

    while(main_event.type != SDL_QUIT)
    {
        SDL_PollEvent(&main_event);

        SDL_RenderClear(renderer);
        SDL_RenderCopy(renderer, rect_texture, NULL, &rect_data);
        SDL_RenderPresent(renderer);
    }

    SDL_DestroyTexture(rect_texture);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}
2013-08-07 01:14:04 -07:00
Sam Lantinga
cdcee9a581 Unify the SetWindowPos() calls so that they all set the window state based on SDL state.
This prevents a rogue call to SetWindowPos() from changing the state unexpectedly.
Also moved the size correction code above the window position query, because the initial window size can affect the positioning.
2013-08-07 00:46:42 -07:00
Sam Lantinga
40b7af6399 Fixed incorrect window state if the window is created grabbed. We don't want to activate the window if it isn't shown yet. 2013-08-07 00:10:31 -07:00
Sam Lantinga
73a2e37abb Fixed bug 1848 - SDL_SetWindowSize cannot set sizes larger than desktop resolution in Windows 2013-08-06 22:55:55 -07:00
Sam Lantinga
3f1d72a71c Fixed clobbering viewport when window is resized when using the software renderer. The viewport adjustment is already handled in the top level rendering code. 2013-08-06 22:31:11 -07:00
Ryan C. Gordon
6b504a4f01 Removed function signature that doesn't actually exist yet.
--HG--
extra : rebase_source : ffcdb6b32d54d18c3eb02f0dd46adcdac7e7bb4a
2013-08-06 18:23:46 -07:00
Sam Lantinga
330f7e1be3 Fixed a number of missing keys in the X11 keyboard mapping. 2013-08-06 18:19:34 -07:00
Sam Lantinga
8005b8d613 Added scancodes for F17, F18, F19 on a Mac keyboard 2013-08-06 12:56:47 -07:00
Sam Lantinga
a50db2d74e Added tag macosx_10_4_supported for changeset ccf5fbfa2afa 2013-08-06 01:19:23 -07:00
Ryan C. Gordon
a052fa0ae8 Removed anisotropic option from SDL_HINT_RENDER_SCALE_QUALITY.
Anisotropic filtering is meant to be used for textures at a stark
 angle, not perpendicular to the camera.

--HG--
extra : rebase_source : e01c4da3bae7f1628de7c049f31f1208dbbbb24c
2013-08-06 00:23:04 -04:00
Sam Lantinga
ecbffe9660 Added scancodes for F13-F19 from a Mac USB keyboard 2013-08-05 11:45:51 -07:00
Philipp Wiesemann
7e69cee4c5 Added missing function prototype and changed its signature.
Signature was changed to prevent a header for SDL_GLContext.
2013-08-04 23:38:25 +02:00
Philipp Wiesemann
2ec969cb57 Fixed volume keys not being handled by Android if screen keyboard is visible.
See bug #1569.
2013-08-04 23:28:34 +02:00
Sam Lantinga
2e934dbde6 Fixed bug 1972 - Changeset 7379 (b27c778a2bdb) breaks make process with msys+mingw (make 3.82.90)
Andreas

With the patch applied, make is not able to find the rule for Makefile.in anymore. Removing the patch resolves the issue.

The path is in fact correct (in my case: /c/external/SDL64/SDL). But it seems the windows build of GNU Make doesn't work well with pathnames in rules. Both the dependencies in "$(srcdir)/configure: $(srcdir)/configure.in" and "Makefile: $(srcdir)/Makefile.in" will cause rules not to be found when srcdir is defined.

The same problem occurs if the patch is removed and I supply configure with a srcdir manually.
2013-08-04 09:37:27 -07:00
Sam Lantinga
dedde96b9f Added extra Visual C++ files to the ignore list 2013-08-04 09:35:35 -07:00
Sam Lantinga
073d059fc9 Fixed bug 2008 - error typos in gles2 renderer
Martin Gerhardy

The attached patch fixes some typos in the SDL_SetError calls that are a little bit misleading.
2013-08-04 09:26:45 -07:00
Sam Lantinga
12b0ad39fc Allow C++ code to include SDL_android.h
Alexey Petruchik

Although SDL_android.h is not intended to be included by client code sometimes it needed. For example you need JNIEnv pointer to make JNI calls to modified SDLActivity.java (video playback, facebook integration, in-apps). It seems a bit weird to write:

extern "C" {
#include "SDL_android.h"
}

in my AndroidJNI.cpp file.
2013-08-04 09:23:55 -07:00
Philipp Wiesemann
1e3605c00f Added missing return statement. 2013-08-03 23:40:28 +02:00
Philipp Wiesemann
ea1040111a Fixed calling JNI method in a wrong way.
Method is void and does not return bool.
2013-08-03 23:36:07 +02:00
Gabriel Jacobo
2a6b235190 Fixes bug #1889, allows for GL Context deletion/recreation on Android
Thanks ny00!
2013-08-03 12:54:39 -03:00
Ryan C. Gordon
a99dfca578 Some fixes for SDL_MaximizeWindow().
Fixes Bugzilla #1441.
2013-08-03 02:20:00 -04:00
Ryan C. Gordon
a60814585d Fixed some whitespace.
--HG--
extra : rebase_source : f10a447a25fafe9bc7a56dba0e6ebc74a3804063
2013-08-02 18:25:20 -04:00
Gabriel Jacobo
ab545a05b9 Temporary fix for bug #1639 SDL does not message back closing of screen keyboard
See FIXME notes on patch for details.
2013-08-02 12:38:39 -03:00
Sam Lantinga
8ee3d7a554 Fixed bug 1968 - SDL_RenderCopy stretch loses proportion on viewport boundaries for 3D renderers
driedfruit

SDL_RenderCopy clips dstrect against the viewport. Then it adjusts the
srcrect by "appropriate" amount of pixels. This amount is actually
wrong, quite a lot, because of the rounding errors introduced in the "*
factor / factor" scale.

            real_srcrect.x += (deltax * real_srcrect.w) / dstrect->w;
            real_srcrect.w += (deltaw * real_srcrect.w) / dstrect->w;

For example:

I have a 32 x 32 srcrect and a 64 x 64 dstrect. So far the
stretching is done perfectly, by a factor of 2.

Now, consider dstrect being clipped against the viewport, so it becomes
56 x 64. Now, the factor becomes 1.75 ! The adjustment to "srcrect"
can't handle this, cause srcrect is in integers.

And thus we now have incorrect mapping, with dstrect not being in the
right proportion to srcrect.

The problem is most evident when upscaling stuff, like displaying a 8x8
texture with a zoom of 64 or more, and moving it beyond the corners of
the screen. It *looks* really really bad.

Note: RenderCopyEX does no such clipping, and is right to do so. The fix would be to remove any such clipping from RenderCopy too. And then fix the software renderer, because it has the same fault, independently of RenderCopy.

[attached patch]
this leaves Software Renderer buggy, as it does it's own clipping later on
2013-08-01 09:15:36 -07:00
Sam Lantinga
da00f7ef51 Fixed bug 1638 - Blit Alpha surface bug
The DUFFS_LOOP_124() macro was trying to be too clever and wasn't doing the right thing, it was checking n & 4 instead of width.
I'm not sure how we didn't catch this before, but it should be fixed now.
2013-08-01 01:29:07 -07:00