summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
AgeCommit message (Collapse)Author
2017-06-05Merge pull request #5312 from ligfx/cleanupupdatedrawrectangleshuffle2
RenderBase: clean up UpdateDrawRectangle
2017-05-26MSVC: define HAVE_FFMPEGMichael Maltese
2017-05-26Rename define HAVE_LIBAV->HAVE_FFMPEGMichael Maltese
2017-04-24RenderBase: clean up UpdateDrawRectangleMichael Maltese
2017-04-11Merge pull request #5234 from lioncash/tupleMarkus Wick
RenderBase: Return tuples from CalculateTargetScale and ConvertStereoRectangle instead of using out parameters
2017-04-10Merge pull request #5008 from ligfx/aspectheuristicScott Mansell
VideoCommon: rework anamorphic widescreen heuristic
2017-04-09RenderBase: Return a tuple from ConvertStereoRectangle instead of using out ↵Lioncash
parameters
2017-04-09RenderBase: Return a tuple from CalculateTargetScale instead of using out ↵Lioncash
parameters
2017-04-08RenderBase: Eliminate renderer global accesses within the Renderer classLioncash
There's no need to access these globals, the instance itself has access to these data members and functions.
2017-04-08RenderBase: const correctnessLioncash
2017-04-05VideoCommon: rework anamorphic widescreen heuristicMichael Maltese
Some widescreen hacks (see below) properly force anamorphic output, but don't make the last projection in a frame 16:9, so Dolphin doesn't display it correctly. This changes the heuristic code to assume a frame is anamorphic based on the total number of vertex flushes in 4:3 and 16:9 projections that frame. It also adds a bit of "aspect ratio inertia" by making it harder to switch aspect ratios, which takes care of aspect ratio flickering that some games / widescreen hacks would be susceptible with the new logic. I've tested this on SSX Tricky's native anamorphic support, Tom Clancy's Splinter Cell (it stayed in 4:3 the whole time), and on the following widescreen hacks for which the heuristic doesn't currently work: Paper Mario: The Thousand-Year Door (Gecko widescreen code from Nintendont) C202F310 00000003 3DC08042 3DE03FD8 91EEF6D8 4E800020 60000000 00000000 04199598 4E800020 C200F500 00000004 3DE08082 3DC0402B 61CE12A2 91CFA1BC 60000000 387D015C 60000000 00000000 C200F508 00000004 3DE08082 3DC04063 61CEE8D3 91CFA1BC 60000000 7FC3F378 60000000 00000000 The Simpsons: Hit & Run (AR widescreen code from the wiki) 04004600 C002A604 04004604 C09F0014 04004608 FC002040 0400460C 4082000C 04004610 C002A608 04004614 EC630032 04004618 48220508 04041A5C 38600001 04224344 C002A60C 04224B1C 4BDDFAE4 044786B0 3FAAAAAB 04479F28 3FA33333
2017-03-14OGL: Remove support for NV_depth_buffer_float.Jules Blok
We can't clamp the depth values to the 24-bit range while this extension is active.
2017-03-10Merge pull request #4935 from Armada651/depth-range-fixMarkus Wick
VideoBackends: Set the maximum range when the depth range is oversized.
2017-03-10RenderBase: Check if early ztest is enabled before falling back to vertex ↵Jules Blok
depth range.
2017-03-10VideoBackends: Move max texture size to VideoConfigStenzek
This stops the virtual method call from within the Renderer constructor. The initialization here for GL had to be moved to VideoBackend, as the Renderer constructor will not have been executed before the value is required.
2017-03-09VideoCommon: Fix crash at startup with virtual XFB enabledStenzek
2017-03-04Android: Move screenshot waiting logic to RendererStenzek
2017-03-04VideoCommon: Store last window request width/heightStenzek
This avoids the need to send a window resize event every frame.
2017-03-04VideoCommon: Move last EFB scale handling to CalculateTargetSizeStenzek
2017-03-04VideoCommon: Rename Renderer s_ prefixes to m_Stenzek
2017-03-04VideoCommon: Move some common initialization logic to RenderBaseStenzek
2017-03-04VideoCommon: Eliminate static state in RendererStenzek
2017-02-26VideoBackends: Use vertex shader depth range if ztexture is used.Jules Blok
2017-02-03FramebufferManagerBase: Return a std::pair from GetTargetSizeLioncash
Keeps associated data together. It also eliminates the possibility of out parameters not being initialized properly. For example, consider the following example: -- some FramebufferManager implementation -- void FBMgrImpl::GetTargetSize(u32* width, u32* height) override { // Do nothing } -- somewhere else where the function is used -- u32 width, height; framebuffer_manager_instance->GetTargetSize(&width, &height); if (texture_width != width) <-- Uninitialized variable usage { ... } It makes it much more obvious to spot any initialization issues, because it requires something to be returned, as opposed to allowing an implementation to just not do anything.
2017-01-31RenderBase: Get rid of unnecessary castsLioncash
2017-01-28RenderBase: Let the Auto Adjust Window Size option request the final image ↵Admiral H. Curtiss
size rather than the raw framebuffer size.
2017-01-28RenderBase: Extract the framebuffer size to display size code into function.Admiral H. Curtiss
2017-01-03FifoPlayer: Save/restore texture memory state for fifo logsStenzek
2016-12-09TextureCacheBase: Eliminate static stateLioncash
2016-11-28VideoCommon: Add method for calculating full-scale framedump rectanglesStenzek
2016-11-28VideoCommon: Remove backbuffer size parameters from methodsStenzek
We have the s_backbuffer_{width,height} fields to represent this, so there's no point in passing them as parameters every time.
2016-11-23VideoCommon: Support dumping frames to imagesStenzek
This is mainly for potential Android fifoci usage, and thus is not exposed anywhere in the UI. To enable, set DumpFramesAsImages under Settings in GFX.ini.
2016-11-10VideoCommon: Drop FlipImageData.degasus
This function isn't used any more, and good code shouldn't use it at all. Use negative strides instead.
2016-11-10VideoCommon/Render: Inplace frame dump encoding.degasus
This increase the performance of good backends a bit, but slows down the bads one a lot. Let's fix those backends instead of forcing stupid memcpy in the common code.
2016-11-07VideoCommon/Render: Use a flag for screenshot.degasus
2016-11-07Renderer: Threaded frame dumping.degasus
2016-11-04AVIDump: Add a struct for the state.degasus
So AddFrame use no global state and can be threaded well.
2016-11-04AVIDump: Inline OSD error handling.degasus
This fixes a review feedback in PR #4345.
2016-10-15Revert "Merge pull request #4286 from shuffle2/Aestek-clean-osd"degasus
This reverts commit 5c0fa4db4fa4a2533c190825e83675f074eaf50c, reversing changes made to b8731eb8180d76b4663eaf4188f985b9c5fa6fb2.
2016-10-15Revert "Merge pull request #4287 from shuffle2/typo-fix"degasus
This reverts commit 6bff97ea300e452cf13196488f1b717f51695ead, reversing changes made to 5c0fa4db4fa4a2533c190825e83675f074eaf50c.
2016-10-10AVIDump: Move CoreTiming into caller.degasus
2016-10-08Renderer: Merge screenshot logic into VideoCommon.degasus
2016-10-08Renderer: Remove write-only variable.degasus
Sorry, merge failure.
2016-10-08AVIDump: Hard code rgba.degasus
2016-10-08VideoCommon: Add custom stride for framedumping.degasus
2016-10-08Framedumps: Add finish() function to limit memory lifetime.degasus
2016-10-08VideoCommon: Drop RepeatFrameDumpFrame helper.degasus
This was needed with fixed framerate dumping. As we now synchronize the frames, the last one will just get padded.
2016-10-07VideoCommon: Mark framedump variables as private.degasus
And rename them to the new naming scheme.
2016-10-07VideoCommon: Add shared framedumping code.degasus
2016-10-04Remove '\n' from OSD messages; they would be converted to '?'Shawn Hoffman