Cocoa Port:

- Add support for automatic texture upscaling and deposterization. (Related to r5384.)
This commit is contained in:
rogerman 2016-03-09 06:04:20 +00:00
parent 485e2cc254
commit a213a7aba7
6 changed files with 789 additions and 39 deletions

View File

@ -720,6 +720,10 @@
<integer>1</integer> <integer>1</integer>
<key>Render3D_Textures</key> <key>Render3D_Textures</key>
<true/> <true/>
<key>Render3D_TextureDeposterize</key>
<false/>
<key>Render3D_TextureScalingFactor</key>
<integer>1</integer>
<key>Render3D_Threads</key> <key>Render3D_Threads</key>
<integer>0</integer> <integer>0</integer>
<key>RomInfoPanel_SectionViewState</key> <key>RomInfoPanel_SectionViewState</key>

View File

@ -61,6 +61,8 @@ class GPUEventHandlerOSX;
@property (assign) NSUInteger render3DThreads; @property (assign) NSUInteger render3DThreads;
@property (assign) BOOL render3DLineHack; @property (assign) BOOL render3DLineHack;
@property (assign) BOOL render3DMultisample; @property (assign) BOOL render3DMultisample;
@property (assign) BOOL render3DTextureDeposterize;
@property (assign) NSUInteger render3DTextureScalingFactor;
@property (assign) BOOL render3DFragmentSamplingHack; @property (assign) BOOL render3DFragmentSamplingHack;
- (void) setOutputList:(NSMutableArray *)theOutputList mutexPtr:(pthread_mutex_t *)theMutex; - (void) setOutputList:(NSMutableArray *)theOutputList mutexPtr:(pthread_mutex_t *)theMutex;

View File

@ -103,6 +103,8 @@ public:
@dynamic render3DThreads; @dynamic render3DThreads;
@dynamic render3DLineHack; @dynamic render3DLineHack;
@dynamic render3DMultisample; @dynamic render3DMultisample;
@dynamic render3DTextureDeposterize;
@dynamic render3DTextureScalingFactor;
@dynamic render3DFragmentSamplingHack; @dynamic render3DFragmentSamplingHack;
@ -411,6 +413,55 @@ public:
return state; return state;
} }
- (void) setRender3DTextureDeposterize:(BOOL)state
{
gpuEvent->Render3DLock();
CommonSettings.GFX3D_Renderer_TextureDeposterize = state ? true : false;
gpuEvent->Render3DUnlock();
}
- (BOOL) render3DTextureDeposterize
{
gpuEvent->Render3DLock();
const BOOL state = CommonSettings.GFX3D_Renderer_TextureDeposterize ? YES : NO;
gpuEvent->Render3DUnlock();
return state;
}
- (void) setRender3DTextureScalingFactor:(NSUInteger)scalingFactor
{
int newScalingFactor = (int)scalingFactor;
if (scalingFactor < 1)
{
newScalingFactor = 1;
}
else if (scalingFactor > 4)
{
newScalingFactor = 4;
}
gpuEvent->Render3DLock();
if (newScalingFactor == 3)
{
newScalingFactor = (newScalingFactor < CommonSettings.GFX3D_Renderer_TextureScalingFactor) ? 2 : 4;
}
CommonSettings.GFX3D_Renderer_TextureScalingFactor = newScalingFactor;
gpuEvent->Render3DUnlock();
}
- (NSUInteger) render3DTextureScalingFactor
{
gpuEvent->Render3DLock();
const NSUInteger scalingFactor = (NSUInteger)CommonSettings.GFX3D_Renderer_TextureScalingFactor;
gpuEvent->Render3DUnlock();
return scalingFactor;
}
- (void) setRender3DFragmentSamplingHack:(BOOL)state - (void) setRender3DFragmentSamplingHack:(BOOL)state
{ {
gpuEvent->Render3DLock(); gpuEvent->Render3DLock();

File diff suppressed because it is too large Load Diff

View File

@ -952,6 +952,8 @@
[[NSUserDefaults standardUserDefaults] setInteger:[[cdsCore cdsGPU] render3DThreads] forKey:@"Render3D_Threads"]; [[NSUserDefaults standardUserDefaults] setInteger:[[cdsCore cdsGPU] render3DThreads] forKey:@"Render3D_Threads"];
[[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DLineHack] forKey:@"Render3D_LineHack"]; [[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DLineHack] forKey:@"Render3D_LineHack"];
[[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DMultisample] forKey:@"Render3D_Multisample"]; [[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DMultisample] forKey:@"Render3D_Multisample"];
[[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DTextureDeposterize] forKey:@"Render3D_TextureDeposterize"];
[[NSUserDefaults standardUserDefaults] setInteger:[[cdsCore cdsGPU] render3DTextureScalingFactor] forKey:@"Render3D_TextureScalingFactor"];
[[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DFragmentSamplingHack] forKey:@"Render3D_FragmentSamplingHack"]; [[NSUserDefaults standardUserDefaults] setBool:[[cdsCore cdsGPU] render3DFragmentSamplingHack] forKey:@"Render3D_FragmentSamplingHack"];
[[NSUserDefaults standardUserDefaults] setInteger:[[cdsCore cdsGPU] gpuScale] forKey:@"Render3D_ScalingFactor"]; [[NSUserDefaults standardUserDefaults] setInteger:[[cdsCore cdsGPU] gpuScale] forKey:@"Render3D_ScalingFactor"];
@ -2203,6 +2205,8 @@
[[cdsCore cdsGPU] setRender3DDepthComparisonThreshold:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_DepthComparisonThreshold"]]; [[cdsCore cdsGPU] setRender3DDepthComparisonThreshold:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_DepthComparisonThreshold"]];
[[cdsCore cdsGPU] setRender3DLineHack:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_LineHack"]]; [[cdsCore cdsGPU] setRender3DLineHack:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_LineHack"]];
[[cdsCore cdsGPU] setRender3DMultisample:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_Multisample"]]; [[cdsCore cdsGPU] setRender3DMultisample:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_Multisample"]];
[[cdsCore cdsGPU] setRender3DTextureDeposterize:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_TextureDeposterize"]];
[[cdsCore cdsGPU] setRender3DTextureScalingFactor:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_TextureScalingFactor"]];
[[cdsCore cdsGPU] setRender3DFragmentSamplingHack:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_FragmentSamplingHack"]]; [[cdsCore cdsGPU] setRender3DFragmentSamplingHack:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_FragmentSamplingHack"]];
[[cdsCore cdsGPU] setGpuScale:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_ScalingFactor"]]; [[cdsCore cdsGPU] setGpuScale:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_ScalingFactor"]];