src/render


Log

Author Commit Date CI Message
Sam Lantinga 877666e2 2014-08-18T11:28:16 Fixed UV texture coordinate scale when using GL_ARB_texture_non_power_of_two
Sam Lantinga de3d381c 2014-08-17T14:44:53 Fixed bug 2685 - SDL_RenderReadPixels() doesn't work with offscreen targets Andreas Falkenhahn SDL_RenderReadPixels() doesn't seem to work when trying to read pixels from a texture that has been created using SDL_TEXTUREACCESS_TARGET and has been selected as the render target using SDL_SetRenderTarget(). I am attaching a small program that demonstrates the issue. I get the following result here: READ PIXEL RETURN: 0 --- COLOR CHECK: ff000000 But it should be: READ PIXEL RETURN: 0 --- COLOR CHECK: ffff0000 Tested with SDL 2.0.3 on Windows 7.
Sam Lantinga 2e3c778e 2014-08-17T14:34:41 Fixed bug where the render target is updated instead of the default output when the window is resized.
Sam Lantinga 529ed53b 2014-08-16T23:30:44 Fixed bug 2681 - dereference a NULL pointer dst_fmt in SDL_CreateTextureFromSurface function Nitz In SDL_CreateTextureFromSurface: SDL_PixelFormat *dst_fmt; /* Set up a destination surface for the texture update */ dst_fmt = SDL_AllocFormat(format); temp = SDL_ConvertSurface(surface, dst_fmt, 0); Here is need of NULL check for dst_fmt because there are chances of NULL return from SDL_AllocFormat(format);
Sam Lantinga d673d8c3 2014-08-16T23:17:47 Fixed bugs 2677 and 2625, made it possible to lock render targets in D3D
Sam Lantinga c6a2382c 2014-08-14T21:31:50 Take advantage of GL_ARB_texture_non_power_of_two when it's available
Philipp Wiesemann 2c1faa40 2014-08-12T23:37:12 Fixed warnings about unused local variables.
Sam Lantinga 6fef39d6 2014-08-06T11:34:54 Added NV12 and NV21 texture support for OpenGL and OpenGL ES 2.0 renderers
Sam Lantinga 5c6c8691 2014-07-27T17:43:36 Fixed uninitialized variable in some cases
Sam Lantinga dfc7535f 2014-07-26T16:52:26 Fixed bug 2657 - Memory leak in GL_CreateTexture function Nitz In GL_CreateTexture function: if (GL_CheckError("glGenTexures()", renderer) < 0) { SDL_free(data); return -1; } Here only data is getting free but data->pixels getting leak. So have to free data->pixels before free data.
Sam Lantinga 96b613ea 2014-07-13T09:04:55 Fixed bug 2640 - Unable to SDL_SetRenderTarget to original surface for software renderer without a window Damian Kaczmarek Basically this bug is probably not a common use case. My goal is to allow rendering totally without a window, for example to a screenshot and I need to rely on SDL_SetRenderTarget to properly work for a purely software renderer created by SDL_CreateSoftwareRenderer.
Sam Lantinga fd1da994 2014-07-12T16:21:56 Fixed bug 2639 - SDL_BLENDMODE_BLEND not working properly for software renderer, thanks to Melker Narikka
Sam Lantinga d23d9c88 2014-07-07T23:26:34 Fixed bug 2421 - SDL_RenderCopyEx off by one when rotating by 90 and -90 chasesan When using SDL_RenderCopyEx, I get a problem on some platforms where the output is offset by +/-1 on other platforms and not on others. I tried it with a center of both 0,0 (and offsetting by width/height) and NULL (for centered). The rotation involved is 90, and/or -90 rotation. The rotation was a constant, no arithmetic was involved when inputting it into SDL_RenderCopyEx. This occurred with 32x32, 24x24, and 16x16 texture sizes. I apologize that I don't have more precise information, as I received the information as a bug report myself. But I have tracked the problem down to here. My program requires pixel perfect alignment on several different platforms, so this is something of a showstopper for me. -- Sylvain It appears the RenderCopyEx is done as expected, this is the red rectangle which is not correctly positionned ! So, here's patch with a 0.5 float increment, like for opengles2, for DrawLines, and also Draw Points.
Sam Lantinga 7187b74c 2014-07-07T11:00:25 Fixed compiler warnings on iOS
Sam Lantinga 1ee96bb9 2014-07-07T10:26:28 Fixed mingw64 build and warnings
Alfred Reynolds 2748e282 2014-07-03T10:22:12 The YUV offset is 16 / 255, not 16 / 256
Sam Lantinga 3d5f4a69 2014-06-25T21:06:47 Fixed YUV texture update with a subrect in OpenGL ES 2.0 - thanks Sylvain!
Sam Lantinga b4deeeba 2014-06-25T00:58:40 Fixed bug 2595 - Padded, non-contiguous YUV does not display correctly using OpenGL ES 2.0 renderer Sylvain Ok, I found out : GLES2_UpdateTexture is just not handling the YUV, I will attach a patch.
Gabriel Jacobo e63e1a5e 2014-06-23T09:25:27 Fixes OpenGL ES 2 renderer (Thanks Sylvain Becker)
Sam Lantinga 1b3d4e6d 2014-06-22T09:42:43 565 textures have higher priority than 555 textures
Sam Lantinga d65ac778 2014-06-22T02:48:43 Restore window OpenGL state if creating an OpenGL renderer fails
Sam Lantinga 5df11f8a 2014-06-21T21:46:42 Made SDL_PIXELFORMAT_ARGB8888 the default texture format for consistency across renderer implementations.
Sam Lantinga 62bdecc8 2014-06-21T12:45:54 Fixed compiler warning with new OpenGL ES header files
Sam Lantinga e8f8e672 2014-06-21T12:38:46 Fixed bug 2595 - Padded, non-contiguous YUV does not display correctly using OpenGL ES 2.0 renderer Alvin The new OpenGL ES 2.0 YUV Texture support does not correctly display padded, non-contiguous YUV data. I am using SDL2 95bd3d33482e (as provided by 'hg id --id') from Mercurial. The YUV data I am using is provided by the FFMPEG family of libraries. According to FFMPEG's documentation, "The linesize [pitch] may be larger than the size of usable data -- there may be extra padding present for performance reasons." The dimensions of the video file that I am using are 480x360. What I get from FFMPEG is a Ypitch of 512, and Upitch and Vpitch are both 256. When I pack new Y, U and V buffers with only the "usable" data (Ypitch is 480 and Upitch and Vpitch are both 240), and use those new buffers, the image is display correctly. It appears that the Ypitch, Upitch and Vpitch parameters are not being used by SDL_UpdateYUVTexture(). I use SDL_PIXELFORMAT_YV12 for my YUV texture, however, the same results are seen when I use SDL_PIXELFORMAT_IYUV. Not sure if this is related or not, but when I render the YUV texture (padded and unpadded) to a RGB24 texture, the resulting image is greyscale (or could by just the Y channel). The URL field for this bug entry is set to my email (SDL mailing list archive) which includes an example image of what I see when rendering padded, non-contiguous YUV data.
Sam Lantinga af50403e 2014-06-15T18:09:39 Fixed bug 2575 - Current GL context tracking fails Ronie Salgado The GL Renderer current context tracking fails when one window is used with an SDL renderer but another separate window is used with a user handled OpenGL context. Attached is a small program that reproduces this bug, at least in some Linux machines where an OpenGL renderer is provided by default. Expected Output: -"First window" should be blue. -"Second window" should be green. Gotten Output: - "First window" black. - "Second window" blue. What happened: The renderer created for the "first window" ends rendering into the "second window" OpenGL context. Bug location: SDL_render_gl.c - line 286 on hg: static SDL_GLContext SDL_CurrentContext = NULL; When making SDL_GL_MakeCurrent from the user perspective, that variable or the GL renderer is not notified about the OpenGL context change. Solution proposal: - Move the current GL context cache into another place global.
Sam Lantinga 9fb2cc10 2014-06-07T11:36:08 dront78 implemented YUV texture support for OpenGL ES 2.0
Gabriel Jacobo 1e352d79 2014-06-06T15:45:59 Chrome's Native Client backend implementation
Sam Lantinga 4fd03b95 2014-06-04T10:57:52 Setting the window size changes the fullscreen display mode, unless a window display mode has been set. Testing: * Ran testsprite2 --fullscreen, used Ctrl+ and Ctrl- to change window sizes, verified that the display mode changed as well.
Sam Lantinga c15e26d7 2014-06-04T10:57:40 Fixed crash and lost pixel data when recovering from a lost device situation (e.g. alt-tab from fullscreen)
J?rgen P. Tjern? d623c0b4 2014-06-04T09:59:10 SDL_opengl: Fix Mac build with new glext.h
Sam Lantinga 49c53fd2 2014-05-31T11:37:12 Use D3D9Ex when available This hopefully works around crashes in Intel D3D9 support in Windows 8.1.
Philipp Wiesemann 9bc47465 2014-05-18T21:11:30 Changed C++ style comments.
Gabriel Jacobo fb389950 2014-05-10T16:23:06 Fixes #2529, guard SDL_d3math.* with the proper defines
David Ludwig 164e5b89 2014-05-09T21:28:52 WinRT: display-information code cleanups
David Ludwig 0a879d63 2014-05-09T20:16:21 Fixed rendering-alignment issues on WinPhone 8.1, when the device was rotated If a Windows Phone 8.1 device was rotated to anything but Portrait mode, the Direct3D 11 renderer's output wouldn't get aligned correctly with the screen.
David Ludwig ec5f6ad5 2014-04-30T21:12:47 WinRT: suppressed an unused param warning when building for Windows Phone 8.1
J?rgen P. Tjern? defd90b6 2014-04-19T13:15:41 Render: Allow empty cliprect. This fixes an issue where an empty cliprect is treated the same as a NULL cliprect, causing the render backends to disable clipping. Also adds a new API, SDL_RenderIsClipEnabled(render) that allows you to differentiate between: - SDL_RenderSetClipRect(render, NULL) - SDL_Rect r = {0,0,0,0}; SDL_RenderSetClipRect(render, &r); Fixes https://bugzilla.libsdl.org/show_bug.cgi?id=2504
David Ludwig 3dcb451f 2014-04-09T21:29:19 Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.
Philipp Wiesemann 83200a32 2014-04-05T23:50:09 Removed empty statements.
David Ludwig a99bf4d7 2014-03-24T22:51:03 WinRT: Call IDXGIDevice3::Trim before app-suspend, as required on Windows 8.1 Thanks to Sylvain Becker for pointing this out!
Sam Lantinga 26823b1b 2014-03-23T23:09:22 Added an event SDL_RENDER_DEVICE_RESET, which is triggered on Direct3D 11 when the device has been lost and all textures need to be recreated.
Sam Lantinga 3317e434 2014-03-23T22:53:50 Fixing Alt-Enter handling, submitted by Nader Golbaz I encountered a little issue: DXGI monitors application's message queue and this behavior interferes with SDL if the application already handles Alt-Enter sequence. I think it is necessary to disable this behavior. http://msdn.microsoft.com/en-us/library/windows/desktop/bb174540%28v=vs.85%29.aspx
David Ludwig 46a80b04 2014-03-23T16:08:32 D3D11: Fixed a crash after a GPU device-reset on Win32
David Ludwig 6ce684e9 2014-03-23T13:48:16 D3D11: Added code to handle GPU-device-removed scenarios These scenarios can happen when a GPU is switched, its driver updated, or in some virtual machines (such as Parallels) are suspended and then resumed. In these cases, all GPU resources will already be lost, and it's up to the app to recover. For now, SDL's D3D11 renderer will handle this by freeing all GPU resources, including all textures, and then sending a SDL_RENDER_TARGETS_RESET event. It's currently up to an app to intercept this event, destroy all of its textures, then recreate them from scratch.
Ryan C. Gordon 93ba5bd8 2014-03-20T16:23:18 Static analysis fix: uninitialized value. (A false positive: clang doesn't know SDL_SetError() always returns -1.)
Ryan C. Gordon 415675be 2014-03-20T11:14:44 Static analysis fix: division by zero.
Ryan C. Gordon b659c700 2014-03-20T10:41:47 Static analysis fix: uninitialized variables. This is actually a false-positive, in this case, since Clang doesn't know that SDL_SetError() only ever returns -1. Feature request to improve that, with explanation about these specific SDL patches, is here: http://llvm.org/bugs/show_bug.cgi?id=19208
Ryan C. Gordon e84fc5a3 2014-03-19T18:25:21 Static analysis fix: division by zero.
David Ludwig f25ee50b 2014-03-15T14:54:23 Fixed broken rotation detection routines on WinRT Rotation detection and handling should now work across all, publicly-released, WinRT-based platforms (Windows 8.0, Windows 8.1, and Windows Phone 8.0).
David Ludwig 5281f9f1 2014-03-15T13:27:18 Fixed a crash on Windows Phone 8 that occurred after rotating a device This changeset prevents IDXGISwapChain::ResizeBuffers from being invoked on Windows Phone 8, a function that isn't available on the platform (but is available on other Windows platforms). The call would fail, which ultimately led to a crash. This changeset also attempts to make sure that the D3D11 swap chain is created at the correct size, when using Windows Phone 8. Still TODO: make sure rotation-querying works across relevant Windows platforms (that support Direct3D 11.x).
Sam Lantinga f9a58968 2014-03-13T21:21:26 Added missing copyright notices
Sam Lantinga ed02f61d 2014-03-13T00:40:08 Fixed the copyright date on files contributed by David Ludwig
David Ludwig 4cd5ed7b 2014-03-12T12:12:20 Merged various WinRT build fixes
David Ludwig b68b6e23 2014-03-12T11:57:15 Fixed various build and runtime errors when using WinRT with VS2012.
Sam Lantinga 641ba099 2014-03-12T07:26:07 Fixed compiling Windows RT code on Visual Studio 2013
David Ludwig 36e7c8d9 2014-03-11T12:40:31 Fixed compiler errors in the D3D11 renderer when building for WinRT Still TODO: fix other build errors, especially linker errors, when building SDL/WinRT, then fix any runtime errors that pop up.
David Ludwig ce3c5b84 2014-03-10T22:53:03 Made VS2012 build the D3D11 renderer This change is currently limited to Win32/Windows-Desktop builds. Build fixes for WinRT + VS2012 are still pending.
Sam Lantinga 2c558ca2 2014-03-10T17:19:19 Fixed D3D9 initialization on Windows 8, which doesn't have D3DX
Sam Lantinga 9c2fb684 2014-03-10T15:00:59 Implemented fullscreen <-> windowed transition on Windows 8
Sam Lantinga 7e8b2553 2014-03-10T14:35:37 Fixed line endings
Sam Lantinga 3df586ce 2014-03-10T12:49:15 Fixed creating the rendering context on a specific device
Sam Lantinga 9aa5b1d4 2014-03-10T05:44:34 Implemented YV12 and IYUV texture support for the D3D11 renderer
Sam Lantinga 965cdf10 2014-03-10T02:13:44 Minor style tweaks
Sam Lantinga 1a35f32b 2014-03-10T01:51:03 Converted David Ludwig's D3D11 renderer to C and optimized it. The D3D11 renderer is now slightly faster than D3D9 on my Windows 8 machine (testsprite2 runs at 3400 FPS vs 3100 FPS) This will need tweaking to fix the Windows RT build.
Sam Lantinga a8f540fe 2014-03-09T22:48:38 Fixed renderer flags to include support for target textures after the renderer is created.
Sam Lantinga 1367bf87 2014-03-09T11:36:47 Integrated David Ludwig's support for Windows RT
Sam Lantinga 05c23063 2014-03-09T11:06:11 Fixed line endings on WinRT source code
Gabriel Jacobo f61602b4 2014-02-27T20:21:46 Improve window recreation logic in OpenGL* renderers
Gabriel Jacobo 4c192bc8 2014-02-25T17:42:34 Fixes #2308, recreate window if GL requirements for the renderer are not met If the window has been created with values for SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION not matching those required by the renderer, attempt to recreate the window. This is needed on platforms where both GL and GLES 1/2 surfaces are supported by the video backend, requiring that the window be recreated when switching between context types.
Sam Lantinga 8db4c5a9 2014-02-25T10:04:49 Fixed crash if the input data pitch is larger than the locked texture pitch
Gabriel Jacobo 6ee12d6c 2014-02-24T18:57:22 Fixes #2296 - SDL_GL_UnbindTexture segfaults (thanks Daniel B?nzli)
Sam Lantinga 22e3217e 2014-02-20T21:07:56 Fixed infinite recursion in D3D_Reset()
Sam Lantinga 6b33f2e8 2014-02-17T22:20:33 Fixed resetting the current render target if the D3D device is reset while using a non-default render target.
Sam Lantinga 076a14b2 2014-02-10T13:40:02 Fixed crash if render target textures are used while the device is lost
Sam Lantinga ae05f178 2014-02-10T10:02:51 Recreate render target textures when the D3D device is being reset, and notify the application using the SDL_RENDER_TARGETS_RESET event when this happens.
Sam Lantinga 3ab3ea64 2014-02-09T01:56:41 Fixed bug 2385 - error: unknown type name 'IDirect3DDevice9' Sandu Liviu Catalin I'm unable to compile the latest SDL (directly from the repository) even though I disabled every DirectX option since I don't need DirectX. I allways het these errors: D:\DevLibs\SDL\src\render\direct3d\SDL_render_d3d.c:1897:1: error: unknown type name 'IDirect3DDevice9' D:\DevLibs\SDL\src\render\direct3d\SDL_render_d3d.c:1898:25: error: unknown type name 'SDL_Renderer'
Sam Lantinga b331ada8 2014-02-09T01:49:01 Fixed bug 2354 - [ES 2.0] SDL_RenderClear clears render target with wrong color ny00 SDL_RenderClear clears a render target with the wrong color, if the opengles2 renderer driver is used and the target texture's format is SDL_PIXELFORMAT_ARGB8888. The bug is *not* reproduced if SDL_PIXELFORMAT_ABGR8888 is used as the texture format (the first from the renderer's list). It is further not reproduced using any of the following renderer drivers: opengl, opengles (apparently powered by Gallium3D), software. Finally, the correct color can be drawn using SDL_RenderFillRect (instead of SDL_RenderClear). A few details about the current setup: - OS: Ubuntu 12.04 for x86_64 - GPU: GeForce GTX 460 - GPU driver version: 331.20-0ubuntu1~xedgers~precise1 (from the xorg-edgers PPA) --- Seth Williams Sam, It appears that the clear just needs to take the render target format into consideration. Seth.
Sam Lantinga 58edac3e 2014-02-02T00:53:27 Fixed bug 2374 - Update copyright for 2014... Is it that time already??
Ryan C. Gordon aff44ccd 2014-01-27T16:13:13 Patched to compile...uh, everywhere. :)
Ryan C. Gordon 87cfee27 2014-01-27T16:10:15 Patched to compile on Windows when not supporting Direct3D.
David Ludwig 44b0e901 2013-12-30T11:59:04 WinRT: d3d11 blend mode bug fixes The destination target's alpha wasn't getting set correctly in many cases. Among other problems, this prevented some alpha-blended textures from displaying correctly in Windows Phone 8's multitasking screen. The d3d11 renderer now uses the same blending settings found in the d3d9 renderer.
David Ludwig 0562e53f 2013-12-26T11:04:35 WinRT: minor header file usage cleanup in the d3d11 renderer
David Ludwig 94233675 2013-12-26T11:03:43 WinRT: simplified the d3d11 vertex shader a bit The projection and view matrices are now computed ahead of time, as they both get computed in the same spot, and typically not often. If this does, however, become a performance problem later on, this change can always be reverted.
David Ludwig 7ef05d26 2013-12-26T10:18:33 WinRT: implemented SDL_RenderSetClipRect for the d3d11 renderer
David Ludwig 700f82de 2013-12-25T23:46:19 WinRT: corrected a minor error in an end-of-file comment
David Ludwig 8b2694f9 2013-12-25T23:45:07 WinRT: minor rotation/orientation code cleanup in the d3d11 renderer
David Ludwig b93ab1e6 2013-12-25T23:25:25 WinRT: removed a bit of dead d3d11 code
David Ludwig f0e406e9 2013-12-25T22:27:58 WinRT: d3d11 compiled-shader code cleanup I'm surprised this code even compiled, before this change. It did, but regardless, here's a cleanup.
David Ludwig 4d16628f 2013-12-25T22:05:18 WinRT: made sure d3d11 debug mode doesn't get enabled by default D3D11 debug mode got inadvertently enabled, in all cases, via changeset c0e68f3. This change reverts that.
David Ludwig ce805722 2013-12-25T21:39:48 WinRT: compiled the d3d11 renderer's shaders into SDL itself Previously, the shaders would get compiled separately, the output of which would need to be packaged into the app. This change should make SDL's dll be the only binary needed to include SDL in a WinRT app.
David Ludwig 8db33416 2013-12-25T14:20:40 WinRT: added a TODO note regarding texture-[un]locking in the d3d11 renderer
David Ludwig 187f52e8 2013-12-25T14:17:49 WinRT: renamed d3d11-internal struct, SDL_VertexShaderConstants, to just VertexShaderConstants This is primarily to keep naming consistent with other shader-bound structs.
David Ludwig 22254931 2013-12-25T13:13:15 WinRT: moved contents of the d3d11 renderer's header file into its implementation file
David Ludwig d4ae3929 2013-12-25T13:00:41 WinRT: simplified a potentially-common error message from D3D11_SetRenderTarget
David Ludwig b0df9157 2013-12-25T12:58:37 WinRT: removed an unnecessary use of std::string in the d3d11 renderer
David Ludwig 10f2de1e 2013-12-25T12:52:16 WinRT: utilized SDL_SetError's return value in the d3d11 renderer
David Ludwig 43e27aa8 2013-12-25T12:48:47 WinRT: minor d3d11 code cleanups
David Ludwig 8c8feb83 2013-12-25T12:47:39 WinRT: made d3d11-spawned error messages trickle down Some error messages had the potential to be overwritten/obscured.
David Ludwig 5fba7db2 2013-12-25T12:43:26 WinRT: made d3d11-spawned error messages include the function name of failed calls
Sam Lantinga 7fe277cd 2013-12-23T17:15:32 Fixed float to int conversion warning, which was a legitimate bug.