Skip to content

Commit 9c0454b

Browse files
committed
first bfi alpha
2 parents d040106 + b643b58 commit 9c0454b

File tree

3,264 files changed

+7003
-4818943
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,264 files changed

+7003
-4818943
lines changed

ShaderGC/ShaderGC.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,8 @@ void ShaderGC::ProcessSourceShader(SourceShaderDef& def, ostream& log, bool& war
251251
def.params.push_back(SourceShaderParam("OriginalSize", 4, 0));
252252
def.params.push_back(SourceShaderParam("OutputSize", 4, 0));
253253
def.params.push_back(SourceShaderParam("FrameCount", 1, 0));
254+
def.params.push_back(SourceShaderParam("CurrentSubFrame", 1, 0));
255+
def.params.push_back(SourceShaderParam("TotalSubFrames", 1, 0));
254256
}
255257

256258
int GetSize(const std::string& mtype)

ShaderGlass/BrowserWindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,14 +402,14 @@ void BrowserWindow::Build()
402402

403403
AddItemToTree(m_treeControl, convertCharArrayToLPCWSTR("Community Favorites"), -1, 1);
404404

405-
for(int fp = 0; fp < sizeof(favoritePresets) / sizeof(const char*); fp++)
405+
/*for(int fp = 0; fp < sizeof(favoritePresets) / sizeof(const char*); fp++)
406406
{
407407
auto p = m_captureManager.FindByName(favoritePresets[fp]);
408408
if(p != -1)
409409
{
410410
m_favorites[WM_SHADER(p)] = AddItemToTree(m_treeControl, convertCharArrayToLPCWSTR(favoritePresets[fp]), WM_SHADER(p), 2);
411411
}
412-
}
412+
}*/
413413

414414
auto raItem = AddItemToTree(m_treeControl, convertCharArrayToLPCWSTR("RetroArch Library"), -1, 1);
415415

ShaderGlass/CaptureManager.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ bool CaptureManager::StartSession()
158158
UpdateLockedArea();
159159
UpdateCroppedArea();
160160
UpdateVertical();
161+
UpdateSubFrames();
161162

162163
if(m_options.imageFile.size())
163164
{
@@ -212,7 +213,8 @@ bool CaptureManager::StartSession()
212213
}
213214

214215
m_active = true;
215-
CreateThread(NULL, 0, ThreadFuncProxy, this, 0, NULL);
216+
auto thread = CreateThread(NULL, 0, ThreadFuncProxy, this, 0, NULL);
217+
SetThreadPriority(thread, THREAD_PRIORITY_TIME_CRITICAL);
216218

217219
UpdateCursor();
218220
return true;
@@ -428,6 +430,14 @@ void CaptureManager::UpdateVertical()
428430
}
429431
}
430432

433+
void CaptureManager::UpdateSubFrames()
434+
{
435+
if(m_shaderGlass)
436+
{
437+
m_shaderGlass->SetSubFrames(m_options.subFrames);
438+
}
439+
}
440+
431441
void CaptureManager::GrabOutput()
432442
{
433443
if(m_shaderGlass)
@@ -465,7 +475,7 @@ void CaptureManager::ThreadFunc()
465475
{
466476
while(m_active)
467477
{
468-
WaitForSingleObject(m_frameEvent, 1);
478+
//WaitForSingleObject(m_frameEvent, 1);
469479
ProcessFrame();
470480
}
471481
}

ShaderGlass/CaptureManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ struct CaptureOptions
4242
bool useHDR {false};
4343
RECT croppedArea {0, 0, 0, 0};
4444
bool vertical {false};
45+
unsigned subFrames {0};
4546
};
4647

4748
class CaptureManager
@@ -75,6 +76,7 @@ class CaptureManager
7576
void UpdateLockedArea();
7677
void UpdateCroppedArea();
7778
void UpdateVertical();
79+
void UpdateSubFrames();
7880
void GrabOutput();
7981
void UpdateParams();
8082
void ResetParams();

ShaderGlass/CaptureSession.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ void CaptureSession::Reset()
7979
m_numInputFrames = 0;
8080
m_prevInputFrames = 0;
8181
m_fps = 0;
82-
m_prevTicks = GetTickCount64();
82+
m_prevTicks = GetTicks();
8383
}
8484

8585
void CaptureSession::UpdateCursor(bool captureCursor)
@@ -107,13 +107,13 @@ void CaptureSession::OnFrameArrived(winrt::Direct3D11CaptureFramePool const& sen
107107

108108
void CaptureSession::OnInputFrame()
109109
{
110-
m_frameTicks = GetTickCount64();
110+
m_frameTicks = GetTicks();
111111
m_numInputFrames++;
112-
if(m_frameTicks - m_prevTicks > 1000)
112+
if(m_frameTicks - m_prevTicks > TICKS_PER_SEC)
113113
{
114114
auto deltaTicks = m_frameTicks - m_prevTicks;
115115
auto deltaFrames = m_numInputFrames - m_prevInputFrames;
116-
m_fps = deltaFrames * 1000.0f / deltaTicks;
116+
m_fps = deltaFrames * (float)TICKS_PER_SEC / deltaTicks;
117117
m_prevInputFrames = m_numInputFrames;
118118
m_prevTicks = m_frameTicks;
119119
}

ShaderGlass/Helpers.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,22 @@ bool CanUpdateCursor()
108108
return false;
109109
}
110110
}
111+
112+
int32_t GetTicks()
113+
{
114+
static LARGE_INTEGER freq {.QuadPart = 0};
115+
static LARGE_INTEGER startTicks {.QuadPart = 0};
116+
if(freq.QuadPart == 0)
117+
{
118+
QueryPerformanceFrequency(&freq);
119+
QueryPerformanceCounter(&startTicks);
120+
}
121+
122+
LARGE_INTEGER ticks;
123+
if(!QueryPerformanceCounter(&ticks) || freq.QuadPart == 0)
124+
{
125+
return GetTickCount64();
126+
}
127+
128+
return (int32_t)((ticks.QuadPart - startTicks.QuadPart) / (freq.QuadPart / TICKS_PER_SEC));
129+
}

ShaderGlass/Helpers.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@ GNU General Public License v3.0
99

1010
#define MAX_WINDOW_TITLE 200
1111
#define MAX_DEVICE_NAME 200
12+
#define TICKS_PER_SEC 10000
13+
#define REFERENCE_FPS 59.95
14+
#define REFERENCE_FRAME_TIME (TICKS_PER_SEC / REFERENCE_FPS)
1215

13-
wchar_t* convertCharArrayToLPCWSTR(const char* charArray);
14-
BOOL IsAltTabWindow(HWND hwnd);
16+
wchar_t* convertCharArrayToLPCWSTR(const char* charArray);
17+
BOOL IsAltTabWindow(HWND hwnd);
1518
std::wstring GetWindowStringText(HWND hwnd);
16-
bool HasCaptureAPI();
17-
bool Is1903();
18-
bool CanDisableBorder();
19-
bool CanSetCaptureRate();
20-
bool CanUpdateCursor();
19+
bool HasCaptureAPI();
20+
bool Is1903();
21+
bool CanDisableBorder();
22+
bool CanSetCaptureRate();
23+
bool CanUpdateCursor();
24+
int32_t GetTicks();

ShaderGlass/Options.h

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ GNU General Public License v3.0
1717
#define MAX_CAPTURE_DEVICE_FORMATS 1024U
1818
#define MAX_RECENT_PROFILES 20U
1919
#define MAX_RECENT_IMPORTS 20U
20+
#define MAX_SUBFRAMES 10U
2021

2122
#define WM_PIXEL_SIZE(i) (static_cast<UINT>(WM_USER) + i)
2223
#define WM_ASPECT_RATIO(i) (static_cast<UINT> WM_PIXEL_SIZE(MAX_PIXEL_SIZES) + i)
@@ -28,6 +29,7 @@ GNU General Public License v3.0
2829
#define WM_RECENT_PROFILE(i) (static_cast<UINT> WM_CAPTURE_DISPLAY(MAX_CAPTURE_DISPLAYS) + i)
2930
#define WM_RECENT_IMPORT(i) (static_cast<UINT> WM_RECENT_PROFILE(MAX_RECENT_PROFILES) + i)
3031
#define WM_CAPTURE_DEVICE_FORMAT(i) (static_cast<UINT> WM_RECENT_IMPORT(MAX_RECENT_IMPORTS) + i)
32+
#define WM_SUBFRAMES(i) (static_cast<UINT> WM_CAPTURE_DEVICE_FORMAT(MAX_CAPTURE_DEVICE_FORMATS) + i)
3133

3234
#define CUSTOM_MNEMONIC "Custom"
3335

@@ -59,6 +61,15 @@ struct FrameSkipInfo
5961
FrameSkipInfo(int s, LPCWSTR text, const char* mnemonic) : s(s), text(text), mnemonic(mnemonic) { }
6062
};
6163

64+
struct SubFrameInfo
65+
{
66+
unsigned s;
67+
LPCWSTR text;
68+
const char* mnemonic;
69+
70+
SubFrameInfo(int s, LPCWSTR text, const char* mnemonic) : s(s), text(text), mnemonic(mnemonic) { }
71+
};
72+
6273
struct OutputScaleInfo
6374
{
6475
float s;
@@ -132,6 +143,15 @@ static const std::map<UINT, PixelSizeInfo> pixelSizes = {{WM_PIXEL_SIZE(0), Pixe
132143
{WM_PIXEL_SIZE(13), PixelSizeInfo(10.0f, 10.0f, L"x10", "10")},
133144
{WM_PIXEL_SIZE(14), PixelSizeInfo(10.8f, 10.8f, L"x10.8 (200p -> 4K)", "10.8")}};
134145

146+
static const std::map<UINT, SubFrameInfo> subFrames = {{WM_SUBFRAMES(0), SubFrameInfo(0, L"disabled", "0")},
147+
{WM_SUBFRAMES(1), SubFrameInfo(2, L"2 (120 Hz)", "2")},
148+
{WM_SUBFRAMES(2), SubFrameInfo(3, L"3 (180 Hz)", "3")},
149+
{WM_SUBFRAMES(3), SubFrameInfo(4, L"4 (240 Hz)", "4")},
150+
{WM_SUBFRAMES(4), SubFrameInfo(5, L"5 (300 Hz)", "5")},
151+
{WM_SUBFRAMES(5), SubFrameInfo(6, L"6 (360 Hz)", "6")},
152+
{WM_SUBFRAMES(6), SubFrameInfo(7, L"7 (420 Hz)", "7")},
153+
{WM_SUBFRAMES(7), SubFrameInfo(8, L"8 (480 Hz)", "8")}};
154+
135155
static std::map<UINT, AspectRatioInfo> aspectRatios = {
136156
{WM_ASPECT_RATIO(0), AspectRatioInfo(1.0f, L"None", "1")},
137157
{WM_ASPECT_RATIO(1), AspectRatioInfo(1.2f, L"x1.2 (DOS, NTSC)", "1.2")},
@@ -173,25 +193,5 @@ static const std::map<UINT, OutputScaleInfo> outputScales = {{WM_OUTPUT_SCALE(0)
173193
{WM_OUTPUT_SCALE(11), OutputScaleInfo(9.0f, L"900%", "900")},
174194
{WM_OUTPUT_SCALE(12), OutputScaleInfo(10.0f, L"1000%", "1000")}};
175195

176-
static const char* defaultPreset = "newpixie-crt";
177-
static const char* favoritePresets[] = {"bayer_4x4",
178-
"crt-geom",
179-
"crt-guest-advanced-ntsc",
180-
"crt-mattias",
181-
"crt-royale",
182-
"ega",
183-
"fxaa",
184-
"gb-pocket",
185-
"gtu-v050",
186-
"kawase_glow",
187-
"MegaBezel_STD",
188-
"MMJ_Cel_Shader",
189-
"newpixie-crt",
190-
"ntsc-vcr",
191-
"pal-r57shell",
192-
"scalefx",
193-
"scanline",
194-
"supereagle",
195-
"technicolor",
196-
"uborder-bezel-reflections",
197-
"vhs"};
196+
static const char* defaultPreset = "crt-beam-simulator";
197+
//static const char* favoritePresets[] = {};

ShaderGlass/ParamsWindow.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ void ParamsWindow::RebuildControls(bool doResize)
253253
int startValue = (int)roundf(numSteps * (p->currentValue - p->minValue) / (p->maxValue - p->minValue));
254254
AddTrackbar(0, numSteps, startValue, numSteps, p->name.c_str(), p);
255255
}
256+
else
257+
{
258+
AddTrackbar(0, 0, 0, 0, p->name.c_str(), p);
259+
}
256260
}
257261

258262
if(m_trackbars.size())
@@ -415,10 +419,11 @@ void ParamsWindow::AddTrackbar(UINT iMin, UINT iMax, UINT iStart, UINT iSteps, c
415419
}
416420
}
417421

422+
int exStyle = iMin == iMax ? WS_DISABLED : 0;
418423
auto hwndTrack = CreateWindowEx(0,
419424
TRACKBAR_CLASS,
420425
L"Trackbar Control",
421-
WS_CHILD | WS_VISIBLE | TBS_AUTOTICKS,
426+
WS_CHILD | WS_VISIBLE | TBS_AUTOTICKS | exStyle,
422427
(LONG)(m_dpiScale * STATIC_WIDTH),
423428
(LONG)(m_dpiScale * (m_trackbars.size() * PARAM_HEIGHT + PARAMS_TOP)),
424429
(LONG)(m_dpiScale * TRACK_WIDTH),

0 commit comments

Comments
 (0)