mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 10:35:46 -04:00
GPU: Implement non-interleaved interlaced rendering
Fixes screen shaking in True Pinball.
This commit is contained in:
@ -345,7 +345,10 @@ protected:
|
||||
}
|
||||
|
||||
/// Returns true if scanout should be interlaced.
|
||||
ALWAYS_INLINE bool IsInterlacedDisplayEnabled() const { return (!m_force_progressive_scan) & m_GPUSTAT.In480iMode(); }
|
||||
ALWAYS_INLINE bool IsInterlacedDisplayEnabled() const
|
||||
{
|
||||
return (!m_force_progressive_scan) & m_GPUSTAT.vertical_interlace;
|
||||
}
|
||||
|
||||
/// Returns true if interlaced rendering is enabled and force progressive scan is disabled.
|
||||
ALWAYS_INLINE bool IsInterlacedRenderingEnabled() const
|
||||
@ -443,18 +446,13 @@ protected:
|
||||
BitField<u32, bool, 27, 1> ready_to_send_vram;
|
||||
BitField<u32, bool, 28, 1> ready_to_recieve_dma;
|
||||
BitField<u32, DMADirection, 29, 2> dma_direction;
|
||||
BitField<u32, bool, 31, 1> displaying_odd_line;
|
||||
BitField<u32, bool, 31, 1> drawing_odd_lines;
|
||||
|
||||
bool IsMaskingEnabled() const
|
||||
{
|
||||
static constexpr u32 MASK = ((1 << 11) | (1 << 12));
|
||||
return ((bits & MASK) != 0);
|
||||
}
|
||||
bool In480iMode() const
|
||||
{
|
||||
static constexpr u32 MASK = (1 << 19) | (1 << 22);
|
||||
return ((bits & MASK) == MASK);
|
||||
}
|
||||
bool SkipDrawingToActiveField() const
|
||||
{
|
||||
static constexpr u32 MASK = (1 << 19) | (1 << 22) | (1 << 10);
|
||||
|
Reference in New Issue
Block a user