Video Filters:
- Add HQ3x and HQ3xS pixel scalers. - Delete unused hq4x.h file.
This commit is contained in:
parent
fec691bd26
commit
947adcd956
|
@ -197,6 +197,10 @@
|
|||
AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; };
|
||||
AB47B52E18A3F722009A42AF /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB47B52C18A3F722009A42AF /* xbrz.cpp */; };
|
||||
AB47B52F18A45C35009A42AF /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB47B52C18A3F722009A42AF /* xbrz.cpp */; };
|
||||
AB4C81E41B21676C00ACECD5 /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C81E31B21676C00ACECD5 /* hq3x.cpp */; };
|
||||
AB4C81E51B21676C00ACECD5 /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C81E31B21676C00ACECD5 /* hq3x.cpp */; };
|
||||
AB4C81E61B21676C00ACECD5 /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C81E31B21676C00ACECD5 /* hq3x.cpp */; };
|
||||
AB4C81E71B21677700ACECD5 /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB4C81E31B21676C00ACECD5 /* hq3x.cpp */; };
|
||||
AB4FCEBD1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; };
|
||||
AB4FCEBE1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; };
|
||||
AB4FCEBF1692AB82000F498F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4FCEBC1692AB82000F498F /* Accelerate.framework */; };
|
||||
|
@ -1166,6 +1170,7 @@
|
|||
AB407F391A620D6E00313213 /* DeSmuME (Latest).profdata */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DeSmuME (Latest).profdata"; sourceTree = "<group>"; };
|
||||
AB47B52B18A3F722009A42AF /* xbrz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbrz.h; sourceTree = "<group>"; };
|
||||
AB47B52C18A3F722009A42AF /* xbrz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xbrz.cpp; sourceTree = "<group>"; };
|
||||
AB4C81E31B21676C00ACECD5 /* hq3x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq3x.cpp; sourceTree = "<group>"; };
|
||||
AB4FCEBC1692AB82000F498F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
|
||||
AB5648FD186E6EA8002740F4 /* cocoa_slot2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_slot2.h; sourceTree = "<group>"; };
|
||||
AB5648FE186E6EA8002740F4 /* cocoa_slot2.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_slot2.mm; sourceTree = "<group>"; };
|
||||
|
@ -1484,7 +1489,6 @@
|
|||
ABFE14FE14C92FF5005D6699 /* hq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq2x.cpp; sourceTree = "<group>"; };
|
||||
ABFE14FF14C92FF5005D6699 /* hq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq2x.h; sourceTree = "<group>"; };
|
||||
ABFE150014C92FF5005D6699 /* hq4x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq4x.cpp; sourceTree = "<group>"; };
|
||||
ABFE150214C92FF5005D6699 /* hq4x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq4x.h; sourceTree = "<group>"; };
|
||||
ABFE150314C92FF5005D6699 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp.h; sourceTree = "<group>"; };
|
||||
ABFE150414C92FF5005D6699 /* lq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lq2x.cpp; sourceTree = "<group>"; };
|
||||
ABFE150514C92FF5005D6699 /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lq2x.h; sourceTree = "<group>"; };
|
||||
|
@ -2251,6 +2255,7 @@
|
|||
ABFE14FB14C92FF5005D6699 /* bilinear.cpp */,
|
||||
ABFE14FC14C92FF5005D6699 /* epx.cpp */,
|
||||
ABFE14FE14C92FF5005D6699 /* hq2x.cpp */,
|
||||
AB4C81E31B21676C00ACECD5 /* hq3x.cpp */,
|
||||
ABFE150014C92FF5005D6699 /* hq4x.cpp */,
|
||||
ABFE150414C92FF5005D6699 /* lq2x.cpp */,
|
||||
ABFE150614C92FF5005D6699 /* scanline.cpp */,
|
||||
|
@ -2258,7 +2263,6 @@
|
|||
AB47B52C18A3F722009A42AF /* xbrz.cpp */,
|
||||
ABFE14FD14C92FF5005D6699 /* filter.h */,
|
||||
ABFE14FF14C92FF5005D6699 /* hq2x.h */,
|
||||
ABFE150214C92FF5005D6699 /* hq4x.h */,
|
||||
ABFE150314C92FF5005D6699 /* interp.h */,
|
||||
ABFE150514C92FF5005D6699 /* lq2x.h */,
|
||||
AB817A34143EE2DB00A7DFE9 /* videofilter.h */,
|
||||
|
@ -2991,6 +2995,7 @@
|
|||
ABD10AE81715FCDD00B5729D /* audiosamplegenerator.cpp in Sources */,
|
||||
ABD10AEB1715FCDD00B5729D /* mic_ext.cpp in Sources */,
|
||||
ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */,
|
||||
AB4C81E51B21676C00ACECD5 /* hq3x.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3008,6 +3013,7 @@
|
|||
AB796CF615CDCBA200C59155 /* cheatSystem.cpp in Sources */,
|
||||
AB796CF715CDCBA200C59155 /* common.cpp in Sources */,
|
||||
AB9038B517C5ED2200F410BD /* slot1comp_mc.cpp in Sources */,
|
||||
AB4C81E41B21676C00ACECD5 /* hq3x.cpp in Sources */,
|
||||
AB796CF815CDCBA200C59155 /* cp15.cpp in Sources */,
|
||||
AB796CF915CDCBA200C59155 /* cpu_detect_x86_gcc.cpp in Sources */,
|
||||
AB796CFA15CDCBA200C59155 /* crc.cpp in Sources */,
|
||||
|
@ -3309,6 +3315,7 @@
|
|||
AB8F3CF51A53AC2600A80BF6 /* buffer.cpp in Sources */,
|
||||
AB8F3CF61A53AC2600A80BF6 /* compiler.cpp in Sources */,
|
||||
AB8F3CF71A53AC2600A80BF6 /* compilercontext.cpp in Sources */,
|
||||
AB4C81E61B21676C00ACECD5 /* hq3x.cpp in Sources */,
|
||||
AB8F3CF81A53AC2600A80BF6 /* compilerfunc.cpp in Sources */,
|
||||
AB8F3CF91A53AC2600A80BF6 /* compileritem.cpp in Sources */,
|
||||
AB8F3CFA1A53AC2600A80BF6 /* context.cpp in Sources */,
|
||||
|
@ -3400,6 +3407,7 @@
|
|||
ABB3C6971501C04F00E0C22E /* Timestretcher.cpp in Sources */,
|
||||
ABB3C6981501C04F00E0C22E /* crc.cpp in Sources */,
|
||||
AB031B5518472F3100541888 /* cocoa_cheat.mm in Sources */,
|
||||
AB4C81E71B21677700ACECD5 /* hq3x.cpp in Sources */,
|
||||
ABB3C6991501C04F00E0C22E /* decrypt.cpp in Sources */,
|
||||
ABB3C69A1501C04F00E0C22E /* header.cpp in Sources */,
|
||||
AB1773FF182ECA8A009F29DD /* slot2_passme.cpp in Sources */,
|
||||
|
|
|
@ -929,6 +929,11 @@
|
|||
ABA93EB2178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; };
|
||||
ABA93EB3178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; };
|
||||
ABA93EB4178C7D4200CBF50B /* encrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA93EAF178C7D4200CBF50B /* encrypt.cpp */; };
|
||||
ABAAEFFF1B22361800E1269D /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAAEFFE1B22361800E1269D /* hq3x.cpp */; };
|
||||
ABAAF0001B22361800E1269D /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAAEFFE1B22361800E1269D /* hq3x.cpp */; };
|
||||
ABAAF0011B22361800E1269D /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAAEFFE1B22361800E1269D /* hq3x.cpp */; };
|
||||
ABAAF0021B22361800E1269D /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAAEFFE1B22361800E1269D /* hq3x.cpp */; };
|
||||
ABAAF0031B22361800E1269D /* hq3x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAAEFFE1B22361800E1269D /* hq3x.cpp */; };
|
||||
ABAAFBEA172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */; };
|
||||
ABAAFBEB172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */; };
|
||||
ABAAFBEC172122B6005DDDBE /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */; };
|
||||
|
@ -1441,6 +1446,7 @@
|
|||
ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_cheat.mm; sourceTree = "<group>"; };
|
||||
ABA93EAE178C7D4200CBF50B /* encrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encrypt.h; path = ../encrypt.h; sourceTree = SOURCE_ROOT; };
|
||||
ABA93EAF178C7D4200CBF50B /* encrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = encrypt.cpp; path = ../encrypt.cpp; sourceTree = SOURCE_ROOT; };
|
||||
ABAAEFFE1B22361800E1269D /* hq3x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq3x.cpp; sourceTree = "<group>"; };
|
||||
ABAAFBE8172122B6005DDDBE /* FileMigrationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileMigrationDelegate.h; sourceTree = "<group>"; };
|
||||
ABAAFBE9172122B6005DDDBE /* FileMigrationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileMigrationDelegate.mm; sourceTree = "<group>"; };
|
||||
ABACB7391AAC46B20066F429 /* Icon_MicrophoneDarkGreen_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneDarkGreen_256x256.png; path = images/Icon_MicrophoneDarkGreen_256x256.png; sourceTree = "<group>"; };
|
||||
|
@ -1754,7 +1760,6 @@
|
|||
ABFE14FE14C92FF5005D6699 /* hq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq2x.cpp; sourceTree = "<group>"; };
|
||||
ABFE14FF14C92FF5005D6699 /* hq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq2x.h; sourceTree = "<group>"; };
|
||||
ABFE150014C92FF5005D6699 /* hq4x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq4x.cpp; sourceTree = "<group>"; };
|
||||
ABFE150214C92FF5005D6699 /* hq4x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq4x.h; sourceTree = "<group>"; };
|
||||
ABFE150314C92FF5005D6699 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp.h; sourceTree = "<group>"; };
|
||||
ABFE150414C92FF5005D6699 /* lq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lq2x.cpp; sourceTree = "<group>"; };
|
||||
ABFE150514C92FF5005D6699 /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lq2x.h; sourceTree = "<group>"; };
|
||||
|
@ -2513,6 +2518,7 @@
|
|||
ABFE14FB14C92FF5005D6699 /* bilinear.cpp */,
|
||||
ABFE14FC14C92FF5005D6699 /* epx.cpp */,
|
||||
ABFE14FE14C92FF5005D6699 /* hq2x.cpp */,
|
||||
ABAAEFFE1B22361800E1269D /* hq3x.cpp */,
|
||||
ABFE150014C92FF5005D6699 /* hq4x.cpp */,
|
||||
ABFE150414C92FF5005D6699 /* lq2x.cpp */,
|
||||
ABFE150614C92FF5005D6699 /* scanline.cpp */,
|
||||
|
@ -2520,7 +2526,6 @@
|
|||
ABECB50818A460710052D52A /* xbrz.cpp */,
|
||||
ABFE14FD14C92FF5005D6699 /* filter.h */,
|
||||
ABFE14FF14C92FF5005D6699 /* hq2x.h */,
|
||||
ABFE150214C92FF5005D6699 /* hq4x.h */,
|
||||
ABFE150314C92FF5005D6699 /* interp.h */,
|
||||
ABFE150514C92FF5005D6699 /* lq2x.h */,
|
||||
AB817A34143EE2DB00A7DFE9 /* videofilter.h */,
|
||||
|
@ -3462,6 +3467,7 @@
|
|||
ABECB50D18A460710052D52A /* xbrz.cpp in Sources */,
|
||||
ABECB51818A460910052D52A /* OGLDisplayOutput.cpp in Sources */,
|
||||
ABC3DEC11A96EA96009EC345 /* RomInfoPanel.mm in Sources */,
|
||||
ABAAF0031B22361800E1269D /* hq3x.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3607,6 +3613,7 @@
|
|||
ABECB50A18A460710052D52A /* xbrz.cpp in Sources */,
|
||||
ABECB51518A460910052D52A /* OGLDisplayOutput.cpp in Sources */,
|
||||
ABC3DEBD1A96EA96009EC345 /* RomInfoPanel.mm in Sources */,
|
||||
ABAAEFFF1B22361800E1269D /* hq3x.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3782,6 +3789,7 @@
|
|||
ABECB50918A460710052D52A /* xbrz.cpp in Sources */,
|
||||
ABECB51418A460910052D52A /* OGLDisplayOutput.cpp in Sources */,
|
||||
ABC3DEBE1A96EA96009EC345 /* RomInfoPanel.mm in Sources */,
|
||||
ABAAF0001B22361800E1269D /* hq3x.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3957,6 +3965,7 @@
|
|||
ABECB50C18A460710052D52A /* xbrz.cpp in Sources */,
|
||||
ABECB51718A460910052D52A /* OGLDisplayOutput.cpp in Sources */,
|
||||
ABC3DEC01A96EA96009EC345 /* RomInfoPanel.mm in Sources */,
|
||||
ABAAF0021B22361800E1269D /* hq3x.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -4102,6 +4111,7 @@
|
|||
ABECB50B18A460710052D52A /* xbrz.cpp in Sources */,
|
||||
ABECB51618A460910052D52A /* OGLDisplayOutput.cpp in Sources */,
|
||||
ABC3DEBF1A96EA96009EC345 /* RomInfoPanel.mm in Sources */,
|
||||
ABAAF0011B22361800E1269D /* hq3x.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
Binary file not shown.
|
@ -2,13 +2,13 @@
|
|||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1050</int>
|
||||
<string key="IBDocument.SystemVersion">14C1510</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">7702</string>
|
||||
<string key="IBDocument.AppKitVersion">1344.72</string>
|
||||
<string key="IBDocument.HIToolboxVersion">757.30</string>
|
||||
<string key="IBDocument.SystemVersion">14D136</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">7706</string>
|
||||
<string key="IBDocument.AppKitVersion">1347.57</string>
|
||||
<string key="IBDocument.HIToolboxVersion">758.70</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="NS.object.0">7702</string>
|
||||
<string key="NS.object.0">7706</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>NSArrayController</string>
|
||||
|
@ -1506,6 +1506,24 @@
|
|||
<reference key="NSMixedImage" ref="678976864"/>
|
||||
<int key="NSTag">4</int>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="446328379">
|
||||
<reference key="NSMenu" ref="1003123887"/>
|
||||
<string key="NSTitle">HQ3x</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="396634170"/>
|
||||
<reference key="NSMixedImage" ref="678976864"/>
|
||||
<int key="NSTag">23</int>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="728839295">
|
||||
<reference key="NSMenu" ref="1003123887"/>
|
||||
<string key="NSTitle">HQ3xS</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="396634170"/>
|
||||
<reference key="NSMixedImage" ref="678976864"/>
|
||||
<int key="NSTag">24</int>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="297190713">
|
||||
<reference key="NSMenu" ref="1003123887"/>
|
||||
<string key="NSTitle">HQ4x</string>
|
||||
|
@ -1984,7 +2002,7 @@
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{505, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -2123,7 +2141,7 @@
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{490, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -2238,7 +2256,7 @@
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{490, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -2353,7 +2371,7 @@
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{490, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -6395,7 +6413,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{13, 10}, {528, 388}}</string>
|
||||
<reference key="NSSuperview" ref="748902585"/>
|
||||
<reference key="NSNextKeyView" ref="461624007"/>
|
||||
<array class="NSMutableArray" key="NSTabViewItems">
|
||||
<object class="NSTabViewItem" id="1008833987">
|
||||
<string key="NSIdentifier">1</string>
|
||||
|
@ -14583,7 +14600,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{463, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
<array key="NSAllowedInputLocales">
|
||||
|
@ -19682,7 +19699,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSWindowTemplate" id="1037714331">
|
||||
<int key="NSWindowStyleMask">279</int>
|
||||
<int key="NSWindowBacking">2</int>
|
||||
<string key="NSWindowRect">{{1004, 23}, {204, 713}}</string>
|
||||
<string key="NSWindowRect">{{1004, 23}, {204, 754}}</string>
|
||||
<int key="NSWTFlags">-461896704</int>
|
||||
<string key="NSWindowTitle">Video Settings</string>
|
||||
<string key="NSWindowClass">NSPanel</string>
|
||||
|
@ -19695,7 +19712,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="670018968">
|
||||
<reference key="NSNextResponder" ref="440584564"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{21, 18}, {162, 19}}</string>
|
||||
<string key="NSFrame">{{25, 19}, {162, 19}}</string>
|
||||
<reference key="NSSuperview" ref="440584564"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="205339011">
|
||||
|
@ -19724,11 +19741,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSMatrix" id="807791156">
|
||||
<reference key="NSNextResponder" ref="36717965"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{18, 14}, {132, 358}}</string>
|
||||
<string key="NSFrame">{{18, 14}, {132, 398}}</string>
|
||||
<reference key="NSSuperview" ref="36717965"/>
|
||||
<reference key="NSNextKeyView" ref="670018968"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSNumRows">18</int>
|
||||
<int key="NSNumRows">20</int>
|
||||
<int key="NSNumCols">1</int>
|
||||
<array class="NSMutableArray" key="NSCells">
|
||||
<object class="NSButtonCell" id="406038934">
|
||||
|
@ -20014,6 +20032,34 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="338954373">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">HQ3x</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="807791156"/>
|
||||
<int key="NSTag">23</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSNormalImage" ref="62036590"/>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="188640664">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">HQ3xS</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="807791156"/>
|
||||
<int key="NSTag">24</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSNormalImage" ref="62036590"/>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="134108895">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">HQ4x</string>
|
||||
|
@ -20027,7 +20073,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="188640664">
|
||||
<object class="NSButtonCell" id="1009745071">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">HQ4xS</string>
|
||||
|
@ -20041,7 +20087,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="134108895">
|
||||
<object class="NSButtonCell" id="385829730">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">2xBRZ</string>
|
||||
|
@ -20055,7 +20101,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="1009745071">
|
||||
<object class="NSButtonCell" id="454811629">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">3xBRZ</string>
|
||||
|
@ -20064,34 +20110,6 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSTag">20</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSNormalImage" ref="62036590"/>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="385829730">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">4xBRZ</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="807791156"/>
|
||||
<int key="NSTag">21</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSNormalImage" ref="62036590"/>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="454811629">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">5xBRZ</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="807791156"/>
|
||||
<int key="NSTag">22</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage">
|
||||
<int key="NSImageFlags">12779520</int>
|
||||
<array class="NSMutableArray" key="NSReps">
|
||||
|
@ -20117,27 +20135,24 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSCellSize">{132, 18}</string>
|
||||
<string key="NSIntercellSpacing">{4, 2}</string>
|
||||
<int key="NSMatrixFlags">1151868928</int>
|
||||
<string key="NSCellClass">NSActionCell</string>
|
||||
<object class="NSButtonCell" key="NSProtoCell" id="307101671">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">Radio</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage">
|
||||
<int key="NSImageFlags">549453824</int>
|
||||
<string key="NSSize">{18, 18}</string>
|
||||
<array class="NSMutableArray" key="NSReps">
|
||||
<array>
|
||||
<integer value="0"/>
|
||||
<object class="NSBitmapImageRep">
|
||||
<object class="NSData" key="NSTIFFRepresentation">
|
||||
<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
|
||||
<object class="NSButtonCell" id="567901344">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">4xBRZ</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="807791156"/>
|
||||
<int key="NSTag">21</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage" id="543711753">
|
||||
<int key="NSImageFlags">549453824</int>
|
||||
<string key="NSSize">{18, 18}</string>
|
||||
<array class="NSMutableArray" key="NSReps">
|
||||
<array>
|
||||
<integer value="0"/>
|
||||
<object class="NSBitmapImageRep">
|
||||
<object class="NSData" key="NSTIFFRepresentation">
|
||||
<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
|
||||
IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
|
||||
29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
|
||||
|
@ -20215,12 +20230,43 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb
|
||||
6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn
|
||||
+3f8B/yY/Sn9uv5L/tz/bf//A</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</array>
|
||||
</array>
|
||||
<reference key="NSColor" ref="122595646"/>
|
||||
<reference key="NSColor" ref="122595646"/>
|
||||
</object>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="76853011">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">5xBRZ</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="807791156"/>
|
||||
<int key="NSTag">22</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSNormalImage" ref="543711753"/>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSCellSize">{132, 18}</string>
|
||||
<string key="NSIntercellSpacing">{4, 2}</string>
|
||||
<int key="NSMatrixFlags">1151868928</int>
|
||||
<string key="NSCellClass">NSActionCell</string>
|
||||
<object class="NSButtonCell" key="NSProtoCell" id="307101671">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">Radio</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSNormalImage" ref="543711753"/>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
|
@ -20231,12 +20277,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<reference key="NSFont" ref="462791774"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {168, 382}}</string>
|
||||
<string key="NSFrame">{{1, 1}, {168, 422}}</string>
|
||||
<reference key="NSSuperview" ref="197231888"/>
|
||||
<reference key="NSNextKeyView" ref="807791156"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{17, 41}, {170, 398}}</string>
|
||||
<string key="NSFrame">{{17, 42}, {170, 438}}</string>
|
||||
<reference key="NSSuperview" ref="440584564"/>
|
||||
<reference key="NSNextKeyView" ref="36717965"/>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -20255,8 +20303,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="824878810">
|
||||
<reference key="NSNextResponder" ref="440584564"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 685}, {113, 18}}</string>
|
||||
<string key="NSFrame">{{17, 726}, {113, 18}}</string>
|
||||
<reference key="NSSuperview" ref="440584564"/>
|
||||
<reference key="NSNextKeyView" ref="740875365"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="523499188">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
|
@ -20278,8 +20327,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="740875365">
|
||||
<reference key="NSNextResponder" ref="440584564"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 665}, {178, 18}}</string>
|
||||
<string key="NSFrame">{{17, 706}, {178, 18}}</string>
|
||||
<reference key="NSSuperview" ref="440584564"/>
|
||||
<reference key="NSNextKeyView" ref="616989284"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:682</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="114282833">
|
||||
|
@ -20313,6 +20363,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{15, 12}, {87, 18}}</string>
|
||||
<reference key="NSSuperview" ref="867699985"/>
|
||||
<reference key="NSNextKeyView" ref="926053636"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:682</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="915791450">
|
||||
|
@ -20336,11 +20387,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {168, 38}}</string>
|
||||
<reference key="NSSuperview" ref="616989284"/>
|
||||
<reference key="NSNextKeyView" ref="897872091"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:21</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{17, 605}, {170, 54}}</string>
|
||||
<string key="NSFrame">{{17, 646}, {170, 54}}</string>
|
||||
<reference key="NSSuperview" ref="440584564"/>
|
||||
<reference key="NSNextKeyView" ref="867699985"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:18</string>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
|
@ -20370,6 +20423,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{18, 14}, {132, 118}}</string>
|
||||
<reference key="NSSuperview" ref="239260615"/>
|
||||
<reference key="NSNextKeyView" ref="197231888"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:736</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
|
@ -20663,11 +20717,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {168, 142}}</string>
|
||||
<reference key="NSSuperview" ref="926053636"/>
|
||||
<reference key="NSNextKeyView" ref="234283836"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:21</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{17, 443}, {170, 158}}</string>
|
||||
<string key="NSFrame">{{17, 484}, {170, 158}}</string>
|
||||
<reference key="NSSuperview" ref="440584564"/>
|
||||
<reference key="NSNextKeyView" ref="239260615"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:18</string>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
<object class="NSTextFieldCell" key="NSTitleCell">
|
||||
|
@ -20685,7 +20741,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<bool key="NSTransparent">NO</bool>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{204, 713}</string>
|
||||
<string key="NSFrameSize">{204, 754}</string>
|
||||
<reference key="NSNextKeyView" ref="824878810"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1177}}</string>
|
||||
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
||||
|
@ -26241,7 +26298,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{525, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -26721,7 +26778,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{531, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -26842,7 +26899,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">1</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{523, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -27368,7 +27425,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSTextFinder"/>
|
||||
<int key="NSPreferredTextFinderStyle">0</int>
|
||||
</object>
|
||||
<int key="NSTVFlags">6</int>
|
||||
<int key="NSTVFlags">70</int>
|
||||
<string key="NSMaxSize">{597, 10000000}</string>
|
||||
<nil key="NSDelegate"/>
|
||||
</object>
|
||||
|
@ -28453,6 +28510,22 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
<int key="connectionID">9349</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">changeVideoPixelScaler:</string>
|
||||
<reference key="source" ref="1014"/>
|
||||
<reference key="destination" ref="446328379"/>
|
||||
</object>
|
||||
<int key="connectionID">10024</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">changeVideoPixelScaler:</string>
|
||||
<reference key="source" ref="1014"/>
|
||||
<reference key="destination" ref="728839295"/>
|
||||
</object>
|
||||
<int key="connectionID">10025</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">launchWebsite:</string>
|
||||
|
@ -39591,12 +39664,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="objectID">797</int>
|
||||
<reference key="object" ref="440584564"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="670018968"/>
|
||||
<reference ref="197231888"/>
|
||||
<reference ref="824878810"/>
|
||||
<reference ref="740875365"/>
|
||||
<reference ref="616989284"/>
|
||||
<reference ref="926053636"/>
|
||||
<reference ref="670018968"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1037714331"/>
|
||||
</object>
|
||||
|
@ -41231,6 +41304,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<reference ref="385829730"/>
|
||||
<reference ref="454811629"/>
|
||||
<reference ref="307101671"/>
|
||||
<reference ref="567901344"/>
|
||||
<reference ref="76853011"/>
|
||||
</array>
|
||||
<reference key="parent" ref="197231888"/>
|
||||
</object>
|
||||
|
@ -48162,6 +48237,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<reference ref="951679807"/>
|
||||
<reference ref="472615298"/>
|
||||
<reference ref="518102648"/>
|
||||
<reference ref="446328379"/>
|
||||
<reference ref="728839295"/>
|
||||
</array>
|
||||
<reference key="parent" ref="920883390"/>
|
||||
</object>
|
||||
|
@ -52634,6 +52711,26 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<reference key="object" ref="67001337"/>
|
||||
<reference key="parent" ref="606253351"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10020</int>
|
||||
<reference key="object" ref="446328379"/>
|
||||
<reference key="parent" ref="1003123887"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10021</int>
|
||||
<reference key="object" ref="728839295"/>
|
||||
<reference key="parent" ref="1003123887"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10026</int>
|
||||
<reference key="object" ref="567901344"/>
|
||||
<reference key="parent" ref="807791156"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10027</int>
|
||||
<reference key="object" ref="76853011"/>
|
||||
<reference key="parent" ref="807791156"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
|
@ -52651,6 +52748,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="10013.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="10014.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="10015.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="10020.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="10021.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="10026.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="10027.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1034.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1035.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1036.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
@ -53352,6 +53453,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="3781.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="3782.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="3783.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<reference key="3784.IBNSViewMetadataGestureRecognizers" ref="0"/>
|
||||
<string key="3784.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<reference key="3786.IBNSViewMetadataGestureRecognizers" ref="0"/>
|
||||
<string key="3786.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
@ -54999,9 +55101,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<boolean value="NO" key="794.NSWindowTemplate.visibleAtLaunch"/>
|
||||
<dictionary class="NSMutableDictionary" key="795.IBAttributePlaceholdersKey"/>
|
||||
<string key="795.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="796.IBPersistedLastKnownCanvasPosition">{730, 913}</string>
|
||||
<string key="796.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="796.IBWindowTemplateEditedContentRect">{{126, 189}, {204, 713}}</string>
|
||||
<boolean value="NO" key="796.NSWindowTemplate.visibleAtLaunch"/>
|
||||
<reference key="797.IBNSViewMetadataGestureRecognizers" ref="0"/>
|
||||
<string key="797.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="7971.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="7972.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
@ -55876,7 +55980,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">10019</int>
|
||||
<int key="maxID">10027</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
@ -56643,6 +56747,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="changeCoreEmuFlags:">id</string>
|
||||
<string key="changeCoreSpeed:">id</string>
|
||||
<string key="changeFirmwareSettings:">id</string>
|
||||
<string key="changeGpuDimensions:">id</string>
|
||||
<string key="changeHardwareMicGain:">id</string>
|
||||
<string key="changeHardwareMicMute:">id</string>
|
||||
<string key="changeRomSaveType:">id</string>
|
||||
|
@ -56709,6 +56814,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="name">changeFirmwareSettings:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="changeGpuDimensions:">
|
||||
<string key="name">changeGpuDimensions:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="changeHardwareMicGain:">
|
||||
<string key="name">changeHardwareMicGain:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
|
@ -56994,6 +57103,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="changeCoreEmuFlags:">id</string>
|
||||
<string key="changeCoreSpeed:">id</string>
|
||||
<string key="changeFirmwareSettings:">id</string>
|
||||
<string key="changeGpuDimensions:">id</string>
|
||||
<string key="changeHardwareMicGain:">id</string>
|
||||
<string key="changeHardwareMicMute:">id</string>
|
||||
<string key="changeRomSaveType:">id</string>
|
||||
|
@ -57064,6 +57174,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string key="name">changeFirmwareSettings:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="changeGpuDimensions:">
|
||||
<string key="name">changeGpuDimensions:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="changeHardwareMicGain:">
|
||||
<string key="name">changeHardwareMicGain:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
|
|
|
@ -31,9 +31,11 @@ void RenderNearest2X (SSurface Src, SSurface Dst);
|
|||
void RenderLQ2X (SSurface Src, SSurface Dst);
|
||||
void RenderLQ2XS (SSurface Src, SSurface Dst);
|
||||
void RenderHQ2X (SSurface Src, SSurface Dst);
|
||||
void RenderHQ2XS (SSurface Src, SSurface Dst);
|
||||
void RenderHQ3X (SSurface Src, SSurface Dst);
|
||||
void RenderHQ3XS (SSurface Src, SSurface Dst);
|
||||
void RenderHQ4X (SSurface Src, SSurface Dst);
|
||||
void RenderHQ4XS (SSurface Src, SSurface Dst);
|
||||
void RenderHQ2XS (SSurface Src, SSurface Dst);
|
||||
void Render2xSaI (SSurface Src, SSurface Dst);
|
||||
void RenderSuper2xSaI (SSurface Src, SSurface Dst);
|
||||
void RenderSuperEagle (SSurface Src, SSurface Dst);
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
* this file, you may extend this exception to your version of the
|
||||
* file, but you are not obligated to do so. If you do not wish to
|
||||
* do so, delete this exception statement from your version.
|
||||
*/
|
||||
|
||||
*/
|
||||
|
||||
#include "filter.h"
|
||||
#include "interp.h"
|
||||
|
||||
|
@ -149,58 +149,60 @@
|
|||
// }
|
||||
//}
|
||||
|
||||
static void hq2x_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1, const u32* src2, unsigned count)
|
||||
static void hq2x_32_def(u32 *__restrict dst0, u32 *__restrict dst1, const u32 *src0, const u32 *src1, const u32 *src2, unsigned count)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for(i=0;i<count;++i) {
|
||||
unsigned char mask;
|
||||
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
c[4] = src1[0];
|
||||
c[7] = src2[0];
|
||||
|
||||
if (i>0) {
|
||||
c[0] = src0[-1];
|
||||
c[3] = src1[-1];
|
||||
c[6] = src2[-1];
|
||||
} else {
|
||||
c[0] = c[1];
|
||||
c[3] = c[4];
|
||||
c[6] = c[7];
|
||||
}
|
||||
|
||||
if (i<count-1) {
|
||||
c[2] = src0[1];
|
||||
c[5] = src1[1];
|
||||
c[8] = src2[1];
|
||||
} else {
|
||||
c[2] = c[1];
|
||||
c[5] = c[4];
|
||||
c[8] = c[7];
|
||||
}
|
||||
|
||||
mask = 0;
|
||||
|
||||
if (interp_32_diff(c[0], c[4]))
|
||||
mask |= 1 << 0;
|
||||
if (interp_32_diff(c[1], c[4]))
|
||||
mask |= 1 << 1;
|
||||
if (interp_32_diff(c[2], c[4]))
|
||||
mask |= 1 << 2;
|
||||
if (interp_32_diff(c[3], c[4]))
|
||||
mask |= 1 << 3;
|
||||
if (interp_32_diff(c[5], c[4]))
|
||||
mask |= 1 << 4;
|
||||
if (interp_32_diff(c[6], c[4]))
|
||||
mask |= 1 << 5;
|
||||
if (interp_32_diff(c[7], c[4]))
|
||||
mask |= 1 << 6;
|
||||
if (interp_32_diff(c[8], c[4]))
|
||||
mask |= 1 << 7;
|
||||
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
u8 mask = 0;
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
c[4] = src1[0];
|
||||
c[7] = src2[0];
|
||||
|
||||
if (i > 0)
|
||||
{
|
||||
c[0] = src0[-1];
|
||||
c[3] = src1[-1];
|
||||
c[6] = src2[-1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[0] = c[1];
|
||||
c[3] = c[4];
|
||||
c[6] = c[7];
|
||||
}
|
||||
|
||||
if (i < count - 1)
|
||||
{
|
||||
c[2] = src0[1];
|
||||
c[5] = src1[1];
|
||||
c[8] = src2[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[2] = c[1];
|
||||
c[5] = c[4];
|
||||
c[8] = c[7];
|
||||
}
|
||||
|
||||
if (interp_32_diff(c[0], c[4]))
|
||||
mask |= 1 << 0;
|
||||
if (interp_32_diff(c[1], c[4]))
|
||||
mask |= 1 << 1;
|
||||
if (interp_32_diff(c[2], c[4]))
|
||||
mask |= 1 << 2;
|
||||
if (interp_32_diff(c[3], c[4]))
|
||||
mask |= 1 << 3;
|
||||
if (interp_32_diff(c[5], c[4]))
|
||||
mask |= 1 << 4;
|
||||
if (interp_32_diff(c[6], c[4]))
|
||||
mask |= 1 << 5;
|
||||
if (interp_32_diff(c[7], c[4]))
|
||||
mask |= 1 << 6;
|
||||
if (interp_32_diff(c[8], c[4]))
|
||||
mask |= 1 << 7;
|
||||
|
||||
#define P0 dst0[0]
|
||||
#define P1 dst0[1]
|
||||
#define P2 dst1[0]
|
||||
|
@ -223,11 +225,12 @@ static void hq2x_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1,
|
|||
#define I97(p0,p1) interp_32_97(c[p0], c[p1])
|
||||
#define I1411(p0,p1,p2) interp_32_1411(c[p0], c[p1], c[p2])
|
||||
#define I151(p0,p1) interp_32_151(c[p0], c[p1])
|
||||
|
||||
switch (mask) {
|
||||
|
||||
switch (mask)
|
||||
{
|
||||
#include "hq2x.h"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#undef P0
|
||||
#undef P1
|
||||
#undef P2
|
||||
|
@ -250,13 +253,13 @@ static void hq2x_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1,
|
|||
#undef I97
|
||||
#undef I1411
|
||||
#undef I151
|
||||
|
||||
src0 += 1;
|
||||
src1 += 1;
|
||||
src2 += 1;
|
||||
dst0 += 2;
|
||||
dst1 += 2;
|
||||
}
|
||||
|
||||
src0 += 1;
|
||||
src1 += 1;
|
||||
src2 += 1;
|
||||
dst0 += 2;
|
||||
dst1 += 2;
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************/
|
||||
|
@ -404,77 +407,80 @@ static void hq2x_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1,
|
|||
// }
|
||||
//}
|
||||
|
||||
static void hq2xS_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1, const u32* src2, unsigned count)
|
||||
static void hq2xS_32_def(u32 *__restrict dst0, u32 *__restrict dst1, const u32 *src0, const u32 *src1, const u32 *src2, unsigned count)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for(i=0;i<count;++i) {
|
||||
unsigned char mask;
|
||||
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
c[4] = src1[0];
|
||||
c[7] = src2[0];
|
||||
|
||||
if (i>0) {
|
||||
c[0] = src0[-1];
|
||||
c[3] = src1[-1];
|
||||
c[6] = src2[-1];
|
||||
} else {
|
||||
c[0] = src0[0];
|
||||
c[3] = src1[0];
|
||||
c[6] = src2[0];
|
||||
}
|
||||
|
||||
if (i<count-1) {
|
||||
c[2] = src0[1];
|
||||
c[5] = src1[1];
|
||||
c[8] = src2[1];
|
||||
} else {
|
||||
c[2] = src0[0];
|
||||
c[5] = src1[0];
|
||||
c[8] = src2[0];
|
||||
}
|
||||
|
||||
mask = 0;
|
||||
// hq2xS dynamic edge detection:
|
||||
// simply comparing the center color against its surroundings will give bad results in many cases,
|
||||
// so, instead, compare the center color relative to the max difference in brightness of this 3x3 block
|
||||
int brightArray[9];
|
||||
int maxBright = 0, minBright = 999999;
|
||||
for(int j = 0 ; j < 9 ; j++)
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
const int b = (int)((c[j] & 0xF8));
|
||||
const int g = (int)((c[j] & 0xF800)) >> 8;
|
||||
const int r = (int)((c[j] & 0xF80000)) >> 16;
|
||||
const int bright = r+r+r + g+g+g + b+b;
|
||||
if(bright > maxBright) maxBright = bright;
|
||||
if(bright < minBright) minBright = bright;
|
||||
|
||||
brightArray[j] = bright;
|
||||
}
|
||||
int diffBright = ((maxBright - minBright) * 7) >> 4;
|
||||
if(diffBright > 7)
|
||||
{
|
||||
const int centerBright = brightArray[4];
|
||||
if(ABS(brightArray[0] - centerBright) > diffBright)
|
||||
mask |= 1 << 0;
|
||||
if(ABS(brightArray[1] - centerBright) > diffBright)
|
||||
mask |= 1 << 1;
|
||||
if(ABS(brightArray[2] - centerBright) > diffBright)
|
||||
mask |= 1 << 2;
|
||||
if(ABS(brightArray[3] - centerBright) > diffBright)
|
||||
mask |= 1 << 3;
|
||||
if(ABS(brightArray[5] - centerBright) > diffBright)
|
||||
mask |= 1 << 4;
|
||||
if(ABS(brightArray[6] - centerBright) > diffBright)
|
||||
mask |= 1 << 5;
|
||||
if(ABS(brightArray[7] - centerBright) > diffBright)
|
||||
mask |= 1 << 6;
|
||||
if(ABS(brightArray[8] - centerBright) > diffBright)
|
||||
mask |= 1 << 7;
|
||||
}
|
||||
u8 mask = 0;
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
c[4] = src1[0];
|
||||
c[7] = src2[0];
|
||||
|
||||
if (i > 0)
|
||||
{
|
||||
c[0] = src0[-1];
|
||||
c[3] = src1[-1];
|
||||
c[6] = src2[-1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[0] = src0[0];
|
||||
c[3] = src1[0];
|
||||
c[6] = src2[0];
|
||||
}
|
||||
|
||||
if (i < count - 1)
|
||||
{
|
||||
c[2] = src0[1];
|
||||
c[5] = src1[1];
|
||||
c[8] = src2[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[2] = src0[0];
|
||||
c[5] = src1[0];
|
||||
c[8] = src2[0];
|
||||
}
|
||||
|
||||
// hq2xS dynamic edge detection:
|
||||
// simply comparing the center color against its surroundings will give bad results in many cases,
|
||||
// so, instead, compare the center color relative to the max difference in brightness of this 3x3 block
|
||||
int brightArray[9];
|
||||
int maxBright = 0, minBright = 999999;
|
||||
for(int j = 0 ; j < 9 ; j++)
|
||||
{
|
||||
const int b = (int)((c[j] & 0xF8));
|
||||
const int g = (int)((c[j] & 0xF800)) >> 8;
|
||||
const int r = (int)((c[j] & 0xF80000)) >> 16;
|
||||
const int bright = r+r+r + g+g+g + b+b;
|
||||
if(bright > maxBright) maxBright = bright;
|
||||
if(bright < minBright) minBright = bright;
|
||||
|
||||
brightArray[j] = bright;
|
||||
}
|
||||
int diffBright = ((maxBright - minBright) * 7) >> 4;
|
||||
if(diffBright > 7)
|
||||
{
|
||||
const int centerBright = brightArray[4];
|
||||
if(ABS(brightArray[0] - centerBright) > diffBright)
|
||||
mask |= 1 << 0;
|
||||
if(ABS(brightArray[1] - centerBright) > diffBright)
|
||||
mask |= 1 << 1;
|
||||
if(ABS(brightArray[2] - centerBright) > diffBright)
|
||||
mask |= 1 << 2;
|
||||
if(ABS(brightArray[3] - centerBright) > diffBright)
|
||||
mask |= 1 << 3;
|
||||
if(ABS(brightArray[5] - centerBright) > diffBright)
|
||||
mask |= 1 << 4;
|
||||
if(ABS(brightArray[6] - centerBright) > diffBright)
|
||||
mask |= 1 << 5;
|
||||
if(ABS(brightArray[7] - centerBright) > diffBright)
|
||||
mask |= 1 << 6;
|
||||
if(ABS(brightArray[8] - centerBright) > diffBright)
|
||||
mask |= 1 << 7;
|
||||
}
|
||||
#define P0 dst0[0]
|
||||
#define P1 dst0[1]
|
||||
#define P2 dst1[0]
|
||||
|
@ -497,11 +503,12 @@ static void hq2xS_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1,
|
|||
#define I97(p0,p1) interp_32_97(c[p0], c[p1])
|
||||
#define I1411(p0,p1,p2) interp_32_1411(c[p0], c[p1], c[p2])
|
||||
#define I151(p0,p1) interp_32_151(c[p0], c[p1])
|
||||
|
||||
switch (mask) {
|
||||
|
||||
switch (mask)
|
||||
{
|
||||
#include "hq2x.h"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#undef P0
|
||||
#undef P1
|
||||
#undef P2
|
||||
|
@ -524,13 +531,13 @@ static void hq2xS_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1,
|
|||
#undef I97
|
||||
#undef I1411
|
||||
#undef I151
|
||||
|
||||
src0 += 1;
|
||||
src1 += 1;
|
||||
src2 += 1;
|
||||
dst0 += 2;
|
||||
dst1 += 2;
|
||||
}
|
||||
|
||||
src0 += 1;
|
||||
src1 += 1;
|
||||
src2 += 1;
|
||||
dst0 += 2;
|
||||
dst1 += 2;
|
||||
}
|
||||
}
|
||||
//
|
||||
//void hq2x(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
||||
|
@ -562,32 +569,32 @@ static void hq2xS_32_def(u32* dst0, u32* dst1, const u32* src0, const u32* src1,
|
|||
// hq2x_16_def(dst0, dst1, src0, src1, src1, width);
|
||||
//}
|
||||
|
||||
void hq2x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
||||
u8 *dstPtr, u32 dstPitch, int width, int height)
|
||||
void hq2x32(const u8 *srcPtr, const u32 srcPitch, const u8 *dstPtr, const u32 dstPitch, const int width, const int height)
|
||||
{
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch >> 2);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + (srcPitch >> 2);
|
||||
u32 *src2 = src1 + (srcPitch >> 2);
|
||||
hq2x_32_def(dst0, dst1, src0, src0, src1, width);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while(count) {
|
||||
dst0 += dstPitch >> 1;
|
||||
dst1 += dstPitch >> 1;
|
||||
hq2x_32_def(dst0, dst1, src0, src1, src2, width);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch >> 2;
|
||||
--count;
|
||||
}
|
||||
dst0 += dstPitch >> 1;
|
||||
dst1 += dstPitch >> 1;
|
||||
hq2x_32_def(dst0, dst1, src0, src1, src1, width);
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch >> 1);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + srcPitch;
|
||||
u32 *src2 = src1 + srcPitch;
|
||||
hq2x_32_def(dst0, dst1, src0, src0, src1, width);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while (count)
|
||||
{
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
hq2x_32_def(dst0, dst1, src0, src1, src2, width);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch;
|
||||
--count;
|
||||
}
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
hq2x_32_def(dst0, dst1, src0, src1, src1, width);
|
||||
}
|
||||
//
|
||||
//void hq2xS(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
||||
|
@ -619,32 +626,32 @@ void hq2x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
// hq2xS_16_def(dst0, dst1, src0, src1, src1, width);
|
||||
//}
|
||||
|
||||
void hq2xS32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
||||
u8 *dstPtr, u32 dstPitch, int width, int height)
|
||||
void hq2xS32(const u8 *srcPtr, const u32 srcPitch, const u8 *dstPtr, const u32 dstPitch, const int width, const int height)
|
||||
{
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch >> 2);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + (srcPitch >> 2);
|
||||
u32 *src2 = src1 + (srcPitch >> 2);
|
||||
hq2xS_32_def(dst0, dst1, src0, src0, src1, width);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while(count) {
|
||||
dst0 += dstPitch >> 1;
|
||||
dst1 += dstPitch >> 1;
|
||||
hq2xS_32_def(dst0, dst1, src0, src1, src2, width);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch >> 2;
|
||||
--count;
|
||||
}
|
||||
dst0 += dstPitch >> 1;
|
||||
dst1 += dstPitch >> 1;
|
||||
hq2xS_32_def(dst0, dst1, src0, src1, src1, width);
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch >> 1);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + srcPitch;
|
||||
u32 *src2 = src1 + srcPitch;
|
||||
hq2xS_32_def(dst0, dst1, src0, src0, src1, width);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while (count)
|
||||
{
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
hq2xS_32_def(dst0, dst1, src0, src1, src2, width);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch;
|
||||
--count;
|
||||
}
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
hq2xS_32_def(dst0, dst1, src0, src1, src1, width);
|
||||
}
|
||||
|
||||
//void hq2x_init(unsigned bits_per_pixel)
|
||||
|
@ -652,28 +659,12 @@ void hq2xS32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
// interp_set(bits_per_pixel);
|
||||
//}
|
||||
|
||||
void RenderHQ2X (SSurface Src, SSurface Dst)
|
||||
void RenderHQ2X(SSurface Src, SSurface Dst)
|
||||
{
|
||||
|
||||
unsigned char *lpSrc, *lpDst;
|
||||
|
||||
lpSrc = Src.Surface;
|
||||
lpDst = Dst.Surface;
|
||||
|
||||
hq2x32 (lpSrc, Src.Pitch*2,
|
||||
lpSrc,
|
||||
lpDst, Dst.Pitch*2 , Src.Width, Src.Height);
|
||||
hq2x32(Src.Surface, Src.Pitch >> 1, Dst.Surface, Dst.Pitch, Src.Width, Src.Height);
|
||||
}
|
||||
|
||||
void RenderHQ2XS (SSurface Src, SSurface Dst)
|
||||
void RenderHQ2XS(SSurface Src, SSurface Dst)
|
||||
{
|
||||
|
||||
unsigned char *lpSrc, *lpDst;
|
||||
|
||||
lpSrc = Src.Surface;
|
||||
lpDst = Dst.Surface;
|
||||
|
||||
hq2xS32 (lpSrc, Src.Pitch*2,
|
||||
lpSrc,
|
||||
lpDst, Dst.Pitch*2 , Src.Width, Src.Height);
|
||||
hq2xS32(Src.Surface, Src.Pitch >> 1, Dst.Surface, Dst.Pitch, Src.Width, Src.Height);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,308 @@
|
|||
/*
|
||||
* This file is part of the Advance project.
|
||||
*
|
||||
* Copyright (C) 2003 Andrea Mazzoleni
|
||||
*
|
||||
* This program 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 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* In addition, as a special exception, Andrea Mazzoleni
|
||||
* gives permission to link the code of this program with
|
||||
* the MAME library (or with modified versions of MAME that use the
|
||||
* same license as MAME), and distribute linked combinations including
|
||||
* the two. You must obey the GNU General Public License in all
|
||||
* respects for all of the code used other than MAME. If you modify
|
||||
* this file, you may extend this exception to your version of the
|
||||
* file, but you are not obligated to do so. If you do not wish to
|
||||
* do so, delete this exception statement from your version.
|
||||
*/
|
||||
|
||||
#include "filter.h"
|
||||
#include "interp.h"
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
/* HQ3x C implementation */
|
||||
|
||||
/*
|
||||
* This effect is a rewritten implementation of the hq3x effect made by Maxim Stepin
|
||||
*/
|
||||
|
||||
void hq3x_32_def(u32 *__restrict dst0, u32 *__restrict dst1, u32 *__restrict dst2, const u32 *src0, const u32 *src1, const u32 *src2, int count)
|
||||
{
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
u8 mask = 0;
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
c[4] = src1[0];
|
||||
c[7] = src2[0];
|
||||
|
||||
if (i > 0)
|
||||
{
|
||||
c[0] = src0[-1];
|
||||
c[3] = src1[-1];
|
||||
c[6] = src2[-1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[0] = c[1];
|
||||
c[3] = c[4];
|
||||
c[6] = c[7];
|
||||
}
|
||||
|
||||
if (i < count - 1)
|
||||
{
|
||||
c[2] = src0[1];
|
||||
c[5] = src1[1];
|
||||
c[8] = src2[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[2] = c[1];
|
||||
c[5] = c[4];
|
||||
c[8] = c[7];
|
||||
}
|
||||
|
||||
if (interp_32_diff(c[0], c[4]))
|
||||
mask |= 1 << 0;
|
||||
if (interp_32_diff(c[1], c[4]))
|
||||
mask |= 1 << 1;
|
||||
if (interp_32_diff(c[2], c[4]))
|
||||
mask |= 1 << 2;
|
||||
if (interp_32_diff(c[3], c[4]))
|
||||
mask |= 1 << 3;
|
||||
if (interp_32_diff(c[5], c[4]))
|
||||
mask |= 1 << 4;
|
||||
if (interp_32_diff(c[6], c[4]))
|
||||
mask |= 1 << 5;
|
||||
if (interp_32_diff(c[7], c[4]))
|
||||
mask |= 1 << 6;
|
||||
if (interp_32_diff(c[8], c[4]))
|
||||
mask |= 1 << 7;
|
||||
|
||||
#define P(a, b) dst##b[a]
|
||||
#define MUR interp_32_diff(c[1], c[5])
|
||||
#define MDR interp_32_diff(c[5], c[7])
|
||||
#define MDL interp_32_diff(c[7], c[3])
|
||||
#define MUL interp_32_diff(c[3], c[1])
|
||||
#define I1(p0) c[p0]
|
||||
#define I2(i0, i1, p0, p1) interp_32_##i0##i1(c[p0], c[p1])
|
||||
#define I3(i0, i1, i2, p0, p1, p2) interp_32_##i0##i1##i2(c[p0], c[p1], c[p2])
|
||||
|
||||
switch (mask)
|
||||
{
|
||||
#include "hq3x.dat"
|
||||
}
|
||||
|
||||
#undef P
|
||||
#undef MUR
|
||||
#undef MDR
|
||||
#undef MDL
|
||||
#undef MUL
|
||||
#undef I1
|
||||
#undef I2
|
||||
#undef I3
|
||||
|
||||
src0 += 1;
|
||||
src1 += 1;
|
||||
src2 += 1;
|
||||
dst0 += 3;
|
||||
dst1 += 3;
|
||||
dst2 += 3;
|
||||
}
|
||||
}
|
||||
|
||||
void hq3xS_32_def(u32 *__restrict dst0, u32 *__restrict dst1, u32 *__restrict dst2, const u32 *src0, const u32 *src1, const u32 *src2, int count)
|
||||
{
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
u8 mask = 0;
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
c[4] = src1[0];
|
||||
c[7] = src2[0];
|
||||
|
||||
if (i > 0)
|
||||
{
|
||||
c[0] = src0[-1];
|
||||
c[3] = src1[-1];
|
||||
c[6] = src2[-1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[0] = c[1];
|
||||
c[3] = c[4];
|
||||
c[6] = c[7];
|
||||
}
|
||||
|
||||
if (i < count - 1)
|
||||
{
|
||||
c[2] = src0[1];
|
||||
c[5] = src1[1];
|
||||
c[8] = src2[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
c[2] = c[1];
|
||||
c[5] = c[4];
|
||||
c[8] = c[7];
|
||||
}
|
||||
|
||||
// hq3xS dynamic edge detection:
|
||||
// simply comparing the center color against its surroundings will give bad results in many cases,
|
||||
// so, instead, compare the center color relative to the max difference in brightness of this 3x3 block
|
||||
int brightArray[9];
|
||||
int maxBright = 0, minBright = 999999;
|
||||
for(int j = 0 ; j < 9 ; j++)
|
||||
{
|
||||
const int b = (int)((c[j] & 0xF8));
|
||||
const int g = (int)((c[j] & 0xF800)) >> 8;
|
||||
const int r = (int)((c[j] & 0xF80000)) >> 16;
|
||||
const int bright = r+r+r + g+g+g + b+b;
|
||||
if(bright > maxBright) maxBright = bright;
|
||||
if(bright < minBright) minBright = bright;
|
||||
|
||||
brightArray[j] = bright;
|
||||
}
|
||||
unsigned int diffBright = ((maxBright - minBright) * 7) >> 4;
|
||||
if(diffBright > 7)
|
||||
{
|
||||
const int centerBright = brightArray[4];
|
||||
if(ABS(brightArray[0] - centerBright) > diffBright)
|
||||
mask |= 1 << 0;
|
||||
if(ABS(brightArray[1] - centerBright) > diffBright)
|
||||
mask |= 1 << 1;
|
||||
if(ABS(brightArray[2] - centerBright) > diffBright)
|
||||
mask |= 1 << 2;
|
||||
if(ABS(brightArray[3] - centerBright) > diffBright)
|
||||
mask |= 1 << 3;
|
||||
if(ABS(brightArray[5] - centerBright) > diffBright)
|
||||
mask |= 1 << 4;
|
||||
if(ABS(brightArray[6] - centerBright) > diffBright)
|
||||
mask |= 1 << 5;
|
||||
if(ABS(brightArray[7] - centerBright) > diffBright)
|
||||
mask |= 1 << 6;
|
||||
if(ABS(brightArray[8] - centerBright) > diffBright)
|
||||
mask |= 1 << 7;
|
||||
}
|
||||
|
||||
#define P(a, b) dst##b[a]
|
||||
#define MUR false//(ABS(brightArray[1] - brightArray[5]) > diffBright) // top-right
|
||||
#define MDR false//(ABS(brightArray[5] - brightArray[7]) > diffBright) // bottom-right
|
||||
#define MDL false//(ABS(brightArray[7] - brightArray[3]) > diffBright) // bottom-left
|
||||
#define MUL false//(ABS(brightArray[3] - brightArray[1]) > diffBright) // top-left
|
||||
#define I1(p0) c[p0]
|
||||
#define I2(i0, i1, p0, p1) interp_32_##i0##i1(c[p0], c[p1])
|
||||
#define I3(i0, i1, i2, p0, p1, p2) interp_32_##i0##i1##i2(c[p0], c[p1], c[p2])
|
||||
|
||||
switch (mask)
|
||||
{
|
||||
#include "hq3x.dat"
|
||||
}
|
||||
|
||||
#undef P
|
||||
#undef MUR
|
||||
#undef MDR
|
||||
#undef MDL
|
||||
#undef MUL
|
||||
#undef I1
|
||||
#undef I2
|
||||
#undef I3
|
||||
|
||||
src0 += 1;
|
||||
src1 += 1;
|
||||
src2 += 1;
|
||||
dst0 += 3;
|
||||
dst1 += 3;
|
||||
dst2 += 3;
|
||||
}
|
||||
}
|
||||
|
||||
void hq3x32(const u8 *srcPtr, const u32 srcPitch, const u8 *dstPtr, const u32 dstPitch, const int width, const int height)
|
||||
{
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch / 3);
|
||||
u32 *dst2 = dst1 + (dstPitch / 3);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + srcPitch;
|
||||
u32 *src2 = src1 + srcPitch;
|
||||
hq3x_32_def(dst0, dst1, dst2, src0, src0, src1, width);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while (count)
|
||||
{
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
dst2 += dstPitch;
|
||||
hq3x_32_def(dst0, dst1, dst2, src0, src1, src2, width);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch;
|
||||
--count;
|
||||
}
|
||||
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
dst2 += dstPitch;
|
||||
hq3x_32_def(dst0, dst1, dst2, src0, src1, src1, width);
|
||||
}
|
||||
|
||||
void hq3x32S(const u8 *srcPtr, const u32 srcPitch, const u8 *dstPtr, const u32 dstPitch, const int width, const int height)
|
||||
{
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch / 3);
|
||||
u32 *dst2 = dst1 + (dstPitch / 3);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + srcPitch;
|
||||
u32 *src2 = src1 + srcPitch;
|
||||
hq3xS_32_def(dst0, dst1, dst2, src0, src0, src1, width);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while (count)
|
||||
{
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
dst2 += dstPitch;
|
||||
hq3xS_32_def(dst0, dst1, dst2, src0, src1, src2, width);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch;
|
||||
--count;
|
||||
}
|
||||
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
dst2 += dstPitch;
|
||||
hq3xS_32_def(dst0, dst1, dst2, src0, src1, src1, width);
|
||||
}
|
||||
|
||||
void RenderHQ3X(SSurface Src, SSurface Dst)
|
||||
{
|
||||
hq3x32(Src.Surface, Src.Pitch >> 1, Dst.Surface, Dst.Pitch*3/2, Src.Width, Src.Height);
|
||||
}
|
||||
|
||||
void RenderHQ3XS(SSurface Src, SSurface Dst)
|
||||
{
|
||||
hq3x32S(Src.Surface, Src.Pitch >> 1, Dst.Surface, Dst.Pitch*3/2, Src.Width, Src.Height);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -39,15 +39,13 @@
|
|||
*/
|
||||
|
||||
|
||||
void hq4x_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
||||
const u32* src0, const u32* src1, const u32* src2,
|
||||
void hq4x_32_def(u32 *__restrict dst0, u32 *__restrict dst1, u32 *__restrict dst2, u32 *__restrict dst3,
|
||||
const u32 *src0, const u32 *src1, const u32 *src2,
|
||||
unsigned count, unsigned flag)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for(i=0;i<count;++i) {
|
||||
unsigned char mask;
|
||||
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
u8 mask = 0;
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
|
@ -79,9 +77,7 @@ void hq4x_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
|||
c[5] = src1[0];
|
||||
c[8] = src2[0];
|
||||
}
|
||||
|
||||
mask = 0;
|
||||
|
||||
|
||||
if (interp_32_diff(c[0], c[4]))
|
||||
mask |= 1 << 0;
|
||||
if (interp_32_diff(c[1], c[4]))
|
||||
|
@ -108,8 +104,9 @@ void hq4x_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
|||
#define I2(i0, i1, p0, p1) interp_32_##i0##i1(c[p0], c[p1])
|
||||
#define I3(i0, i1, i2, p0, p1, p2) interp_32_##i0##i1##i2(c[p0], c[p1], c[p2])
|
||||
|
||||
switch (mask) {
|
||||
#include "hq4x.dat"
|
||||
switch (mask)
|
||||
{
|
||||
#include "hq4x.dat"
|
||||
}
|
||||
|
||||
#undef P
|
||||
|
@ -131,15 +128,13 @@ void hq4x_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
|||
}
|
||||
}
|
||||
|
||||
void hq4xS_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
||||
const u32* src0, const u32* src1, const u32* src2,
|
||||
void hq4xS_32_def(u32 *__restrict dst0, u32 *__restrict dst1, u32 *__restrict dst2, u32 *__restrict dst3,
|
||||
const u32 *src0, const u32 *src1, const u32 *src2,
|
||||
unsigned count, unsigned flag)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for(i=0;i<count;++i) {
|
||||
unsigned char mask;
|
||||
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
u8 mask = 0;
|
||||
u32 c[9];
|
||||
|
||||
c[1] = src0[0];
|
||||
|
@ -172,7 +167,6 @@ void hq4xS_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
|||
c[8] = src2[0];
|
||||
}
|
||||
|
||||
mask = 0;
|
||||
// hq4xS dynamic edge detection:
|
||||
// simply comparing the center color against its surroundings will give bad results in many cases,
|
||||
// so, instead, compare the center color relative to the max difference in brightness of this 3x3 block
|
||||
|
@ -220,7 +214,8 @@ void hq4xS_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
|||
#define I2(i0, i1, p0, p1) interp_32_##i0##i1(c[p0], c[p1])
|
||||
#define I3(i0, i1, i2, p0, p1, p2) interp_32_##i0##i1##i2(c[p0], c[p1], c[p2])
|
||||
|
||||
switch (mask) {
|
||||
switch (mask)
|
||||
{
|
||||
#include "hq4x.dat"
|
||||
}
|
||||
|
||||
|
@ -243,8 +238,7 @@ void hq4xS_32_def(u32* dst0, u32* dst1, u32* dst2, u32* dst3,
|
|||
}
|
||||
}
|
||||
|
||||
void hq4x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
||||
u8 *dstPtr, u32 dstPitch, int width, int height)
|
||||
void hq4x32(const u8 *srcPtr, const u32 srcPitch, const u8 *dstPtr, const u32 dstPitch, const int width, const int height)
|
||||
{
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch >> 2);
|
||||
|
@ -252,14 +246,15 @@ void hq4x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
u32 *dst3 = dst2 + (dstPitch >> 2);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + (srcPitch >> 2);
|
||||
u32 *src2 = src1 + (srcPitch >> 2);
|
||||
u32 *src1 = src0 + srcPitch;
|
||||
u32 *src2 = src1 + srcPitch;
|
||||
hq4x_32_def(dst0, dst1, dst2, dst3, src0, src0, src1, width, 0);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while(count) {
|
||||
while (count)
|
||||
{
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
dst2 += dstPitch;
|
||||
|
@ -267,7 +262,7 @@ void hq4x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
hq4x_32_def(dst0, dst1, dst2, dst3, src0, src1, src2, width, 0);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch >> 2;
|
||||
src2 += srcPitch;
|
||||
--count;
|
||||
}
|
||||
|
||||
|
@ -278,8 +273,7 @@ void hq4x32(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
hq4x_32_def(dst0, dst1, dst2, dst3, src0, src1, src1, width, 0);
|
||||
}
|
||||
|
||||
void hq4x32S(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
||||
u8 *dstPtr, u32 dstPitch, int width, int height)
|
||||
void hq4x32S(const u8 *srcPtr, const u32 srcPitch, const u8 *dstPtr, const u32 dstPitch, const int width, const int height)
|
||||
{
|
||||
u32 *dst0 = (u32 *)dstPtr;
|
||||
u32 *dst1 = dst0 + (dstPitch >> 2);
|
||||
|
@ -287,14 +281,15 @@ void hq4x32S(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
u32 *dst3 = dst2 + (dstPitch >> 2);
|
||||
|
||||
u32 *src0 = (u32 *)srcPtr;
|
||||
u32 *src1 = src0 + (srcPitch >> 2);
|
||||
u32 *src2 = src1 + (srcPitch >> 2);
|
||||
u32 *src1 = src0 + srcPitch;
|
||||
u32 *src2 = src1 + srcPitch;
|
||||
hq4xS_32_def(dst0, dst1, dst2, dst3, src0, src0, src1, width, 0);
|
||||
|
||||
int count = height;
|
||||
|
||||
count -= 2;
|
||||
while(count) {
|
||||
while (count)
|
||||
{
|
||||
dst0 += dstPitch;
|
||||
dst1 += dstPitch;
|
||||
dst2 += dstPitch;
|
||||
|
@ -302,7 +297,7 @@ void hq4x32S(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
hq4xS_32_def(dst0, dst1, dst2, dst3, src0, src1, src2, width, 0);
|
||||
src0 = src1;
|
||||
src1 = src2;
|
||||
src2 += srcPitch >> 2;
|
||||
src2 += srcPitch;
|
||||
--count;
|
||||
}
|
||||
|
||||
|
@ -313,26 +308,12 @@ void hq4x32S(u8 *srcPtr, u32 srcPitch, u8 * /* deltaPtr */,
|
|||
hq4xS_32_def(dst0, dst1, dst2, dst3, src0, src1, src1, width, 0);
|
||||
}
|
||||
|
||||
void RenderHQ4X (SSurface Src, SSurface Dst)
|
||||
void RenderHQ4X(SSurface Src, SSurface Dst)
|
||||
{
|
||||
unsigned char *lpSrc, *lpDst;
|
||||
|
||||
lpSrc = Src.Surface;
|
||||
lpDst = Dst.Surface;
|
||||
|
||||
hq4x32 (lpSrc, Src.Pitch*2,
|
||||
lpSrc,
|
||||
lpDst, Dst.Pitch*2 , Src.Width, Src.Height);
|
||||
hq4x32(Src.Surface, Src.Pitch >> 1, Dst.Surface, Dst.Pitch*2, Src.Width, Src.Height);
|
||||
}
|
||||
|
||||
void RenderHQ4XS (SSurface Src, SSurface Dst)
|
||||
void RenderHQ4XS(SSurface Src, SSurface Dst)
|
||||
{
|
||||
unsigned char *lpSrc, *lpDst;
|
||||
|
||||
lpSrc = Src.Surface;
|
||||
lpDst = Dst.Surface;
|
||||
|
||||
hq4x32S (lpSrc, Src.Pitch*2,
|
||||
lpSrc,
|
||||
lpDst, Dst.Pitch*2 , Src.Width, Src.Height);
|
||||
hq4x32S(Src.Surface, Src.Pitch >> 1, Dst.Surface, Dst.Pitch*2, Src.Width, Src.Height);
|
||||
}
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
/*
|
||||
* This file is part of the Advance project.
|
||||
*
|
||||
* Copyright (C) 2003, 2004, 2008 Andrea Mazzoleni
|
||||
*
|
||||
* This program 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 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* In addition, as a special exception, Andrea Mazzoleni
|
||||
* gives permission to link the code of this program with
|
||||
* the MAME library (or with modified versions of MAME that use the
|
||||
* same license as MAME), and distribute linked combinations including
|
||||
* the two. You must obey the GNU General Public License in all
|
||||
* respects for all of the code used other than MAME. If you modify
|
||||
* this file, you may extend this exception to your version of the
|
||||
* file, but you are not obligated to do so. If you do not wish to
|
||||
* do so, delete this exception statement from your version.
|
||||
*/
|
||||
|
||||
#ifndef __HQ4X_H
|
||||
#define __HQ4X_H
|
||||
|
||||
#include "segment.h"
|
||||
|
||||
void hq4x_16_def(interp_uint16* dst0, interp_uint16* dst1, interp_uint16* dst2, interp_uint16* dst3, const interp_uint16* src0, const interp_uint16* src1, const interp_uint16* src2, unsigned count, unsigned flag);
|
||||
void hq4x_32_def(interp_uint32* dst0, interp_uint32* dst1, interp_uint32* dst2, interp_uint32* dst3, const interp_uint32* src0, const interp_uint32* src1, const interp_uint32* src2, unsigned count, unsigned flag);
|
||||
|
||||
#endif
|
||||
|
|
@ -48,7 +48,9 @@ const VideoFilterAttributes VideoFilterAttributesList[] = {
|
|||
{VideoFilterTypeID_2xBRZ, "2xBRZ", &Render2xBRZ, 2, 1, 0},
|
||||
{VideoFilterTypeID_3xBRZ, "3xBRZ", &Render3xBRZ, 3, 1, 0},
|
||||
{VideoFilterTypeID_4xBRZ, "4xBRZ", &Render4xBRZ, 4, 1, 0},
|
||||
{VideoFilterTypeID_5xBRZ, "5xBRZ", &Render5xBRZ, 5, 1, 0} };
|
||||
{VideoFilterTypeID_5xBRZ, "5xBRZ", &Render5xBRZ, 5, 1, 0},
|
||||
{VideoFilterTypeID_HQ3X, "HQ3x", &RenderHQ3X, 3, 1, 0},
|
||||
{VideoFilterTypeID_HQ3XS, "HQ3xS", &RenderHQ3XS, 3, 1, 0} };
|
||||
|
||||
// Parameters for Scanline filter
|
||||
int scanline_filter_a = 0;
|
||||
|
|
|
@ -70,6 +70,8 @@ enum VideoFilterTypeID
|
|||
VideoFilterTypeID_3xBRZ,
|
||||
VideoFilterTypeID_4xBRZ,
|
||||
VideoFilterTypeID_5xBRZ,
|
||||
VideoFilterTypeID_HQ3X,
|
||||
VideoFilterTypeID_HQ3XS,
|
||||
|
||||
VideoFilterTypeIDCount // Make sure this one is always last
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue