| Age | Commit message (Collapse) | Author |
|
RenderBase: clean up UpdateDrawRectangle
|
|
|
|
|
|
|
|
RenderBase: Return tuples from CalculateTargetScale and ConvertStereoRectangle instead of using out parameters
|
|
VideoCommon: rework anamorphic widescreen heuristic
|
|
parameters
|
|
parameters
|
|
There's no need to access these globals, the instance itself has access
to these data members and functions.
|
|
|
|
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
|
|
We can't clamp the depth values to the 24-bit range while this extension is active.
|
|
VideoBackends: Set the maximum range when the depth range is oversized.
|
|
depth range.
|
|
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.
|
|
|
|
|
|
This avoids the need to send a window resize event every frame.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
size rather than the raw framebuffer size.
|
|
|
|
|
|
|
|
|
|
We have the s_backbuffer_{width,height} fields to represent this, so
there's no point in passing them as parameters every time.
|
|
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.
|
|
This function isn't used any more, and good code shouldn't use it at all. Use negative strides instead.
|
|
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.
|
|
|
|
|
|
So AddFrame use no global state and can be threaded well.
|
|
This fixes a review feedback in PR #4345.
|
|
This reverts commit 5c0fa4db4fa4a2533c190825e83675f074eaf50c, reversing
changes made to b8731eb8180d76b4663eaf4188f985b9c5fa6fb2.
|
|
This reverts commit 6bff97ea300e452cf13196488f1b717f51695ead, reversing
changes made to 5c0fa4db4fa4a2533c190825e83675f074eaf50c.
|
|
|
|
|
|
Sorry, merge failure.
|
|
|
|
|
|
|
|
This was needed with fixed framerate dumping. As we now synchronize the frames, the last one will just get padded.
|
|
And rename them to the new naming scheme.
|
|
|
|
|