Welcome to mirror list, hosted at ThFree Co, Russian Federation.

RenderersSettings.h « VideoRenderers « renderer « filters « src - github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c8c9e60cc3d1cc9ce6b87397b8cccf59e3726cc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/*
 * (C) 2003-2006 Gabest
 * (C) 2006-2014 see Authors.txt
 *
 * This file is part of MPC-HC.
 *
 * MPC-HC is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * MPC-HC is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#pragma once

#include "../../../SubPic/SubPicQueueSettings.h"

enum {
    WM_REARRANGERENDERLESS = WM_APP + 1,
    WM_RESET_DEVICE
};

#define WM_MYMOUSELAST WM_XBUTTONDBLCLK

enum {
    VIDRNDT_RM_DEFAULT,
    VIDRNDT_RM_DX7,
    VIDRNDT_RM_DX9
};

enum {
    VIDRNDT_QT_DEFAULT,
    VIDRNDT_QT_DX7,
    VIDRNDT_QT_DX9
};

enum {
    VIDRNDT_AP_SURFACE,
    VIDRNDT_AP_TEXTURE2D,
    VIDRNDT_AP_TEXTURE3D
};

enum VideoSystem {
    VIDEO_SYSTEM_UNKNOWN,
    VIDEO_SYSTEM_HDTV,
    VIDEO_SYSTEM_SDTV_NTSC,
    VIDEO_SYSTEM_SDTV_PAL
};

enum AmbientLight {
    AMBIENT_LIGHT_BRIGHT,
    AMBIENT_LIGHT_DIM,
    AMBIENT_LIGHT_DARK
};

enum ColorRenderingIntent {
    COLOR_RENDERING_INTENT_PERCEPTUAL,
    COLOR_RENDERING_INTENT_RELATIVE_COLORIMETRIC,
    COLOR_RENDERING_INTENT_SATURATION,
    COLOR_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC
};

class CRenderersSettings
{

public:
    bool fResetDevice;

    class CAdvRendererSettings
    {
    public:
        CAdvRendererSettings() { SetDefault(); }

        bool    bVMR9AlterativeVSync;
        int     iVMR9VSyncOffset;
        bool    bVMR9VSyncAccurate;
        bool    bVMR9FullscreenGUISupport;
        bool    bVMR9VSync;
        bool    bVMR9FullFloatingPointProcessing;
        bool    bVMR9HalfFloatingPointProcessing;
        bool    bVMR9ColorManagementEnable;
        int     iVMR9ColorManagementInput;
        int     iVMR9ColorManagementAmbientLight;
        int     iVMR9ColorManagementIntent;
        bool    bVMRDisableDesktopComposition;
        bool    bVMRFlushGPUBeforeVSync;
        bool    bVMRFlushGPUAfterPresent;
        bool    bVMRFlushGPUWait;

        // EVR
        bool    bEVRHighColorResolution;
        bool    bEVRForceInputHighColorResolution;
        bool    bEVREnableFrameTimeCorrection;
        int     iEVROutputRange;

        // SyncRenderer settings
        bool    bSynchronizeVideo;
        bool    bSynchronizeDisplay;
        bool    bSynchronizeNearest;
        int     iLineDelta;
        int     iColumnDelta;
        double  fCycleDelta;
        double  fTargetSyncOffset;
        double  fControlLimit;

        void    SetDefault();
        void    SetOptimal();
    };

    CAdvRendererSettings m_AdvRendSets;

    int         iAPSurfaceUsage;
    int         iDX9Resizer;
    bool        fVMR9MixerMode;
    bool        fVMR9MixerYUV;
    int         iEvrBuffers;

    SubPicQueueSettings subPicQueueSettings;

    CString     D3D9RenderDevice;
    void        UpdateData(bool fSave);
};

class CRenderersData
{
    HINSTANCE   m_hD3DX9Dll;
    UINT        m_nDXSdkRelease;

public:
    CRenderersData();

    bool        m_bTearingTest;
    int         m_iDisplayStats;
    bool        m_bResetStats;  // Set to reset the presentation statistics
    CString     m_strD3DX9Version;

    // Hardware feature support
    bool        m_bFP16Support;
    bool        m_b10bitSupport;
    CString     m_strDXVAInfo;

    LONGLONG    GetPerfCounter() const;
    HINSTANCE   GetD3X9Dll();
    UINT        GetDXSdkRelease() const { return m_nDXSdkRelease; };
};

extern CRenderersData*      GetRenderersData();
extern CRenderersSettings&  GetRenderersSettings();

extern bool LoadResource(UINT resid, CStringA& str, LPCTSTR restype);