diff --git a/desmume/src/cocoa/DefaultUserPrefs.plist b/desmume/src/cocoa/DefaultUserPrefs.plist index 6b32facf2..5c2538845 100644 Binary files a/desmume/src/cocoa/DefaultUserPrefs.plist and b/desmume/src/cocoa/DefaultUserPrefs.plist differ diff --git a/desmume/src/cocoa/cocoa_globals.h b/desmume/src/cocoa/cocoa_globals.h index 34c339186..05f0ebf09 100644 --- a/desmume/src/cocoa/cocoa_globals.h +++ b/desmume/src/cocoa/cocoa_globals.h @@ -371,6 +371,7 @@ enum MESSAGE_SET_RENDER3D_DEPTH_COMPARISON_THRESHOLD, MESSAGE_SET_RENDER3D_THREADS, MESSAGE_SET_RENDER3D_LINE_HACK, + MESSAGE_SET_RENDER3D_MULTISAMPLE, MESSAGE_SET_VIEW_TO_BLACK, MESSAGE_SET_VIEW_TO_WHITE, diff --git a/desmume/src/cocoa/cocoa_output.h b/desmume/src/cocoa/cocoa_output.h index 841b1cfca..e685e6115 100644 --- a/desmume/src/cocoa/cocoa_output.h +++ b/desmume/src/cocoa/cocoa_output.h @@ -159,6 +159,7 @@ typedef struct OSSpinLock spinlockRender3DDepthComparisonThreshold; OSSpinLock spinlockRender3DThreads; OSSpinLock spinlockRender3DLineHack; + OSSpinLock spinlockRender3DMultisample; } @property (assign) UInt32 gpuStateFlags; @@ -183,6 +184,8 @@ typedef struct - (NSUInteger) render3DThreads; - (void) setRender3DLineHack:(BOOL)state; - (BOOL) render3DLineHack; +- (void) setRender3DMultisample:(BOOL)state; +- (BOOL) render3DMultisample; - (void) handleChangeGpuStateFlags:(NSData *)flagsData; - (void) handleChangeDisplayMode:(NSData *)displayModeData; @@ -194,6 +197,7 @@ typedef struct - (void) handleSetRender3DDepthComparisonThreshold:(NSData *)thresholdData; - (void) handleSetRender3DThreads:(NSData *)numberThreadsData; - (void) handleSetRender3DLineHack:(NSData *)stateData; +- (void) handleSetRender3DMultisample:(NSData *)stateData; - (void) handleSetViewToBlack; - (void) handleSetViewToWhite; - (void) handleRequestScreenshot:(NSData *)fileURLStringData fileTypeData:(NSData *)fileTypeData; diff --git a/desmume/src/cocoa/cocoa_output.mm b/desmume/src/cocoa/cocoa_output.mm index b3e29f1b4..cd04a7bb3 100644 --- a/desmume/src/cocoa/cocoa_output.mm +++ b/desmume/src/cocoa/cocoa_output.mm @@ -465,6 +465,7 @@ GPU3DInterface *core3DList[] = { spinlockRender3DDepthComparisonThreshold = OS_SPINLOCK_INIT; spinlockRender3DThreads = OS_SPINLOCK_INIT; spinlockRender3DLineHack = OS_SPINLOCK_INIT; + spinlockRender3DMultisample = OS_SPINLOCK_INIT; delegate = nil; displayMode = DS_DISPLAY_TYPE_COMBO; @@ -505,6 +506,7 @@ GPU3DInterface *core3DList[] = { [property setValue:[NSNumber numberWithInteger:0] forKey:@"render3DDepthComparisonThreshold"]; [property setValue:[NSNumber numberWithInteger:0] forKey:@"render3DThreads"]; [property setValue:[NSNumber numberWithBool:YES] forKey:@"render3DLineHack"]; + [property setValue:[NSNumber numberWithBool:NO] forKey:@"render3DMultisample"]; return self; } @@ -975,6 +977,32 @@ GPU3DInterface *core3DList[] = { return state; } +- (void) setRender3DMultisample:(BOOL)state +{ + OSSpinLockLock(&spinlockRender3DMultisample); + [property setValue:[NSNumber numberWithBool:state] forKey:@"render3DMultisample"]; + OSSpinLockUnlock(&spinlockRender3DMultisample); + + bool cState = false; + if (state) + { + cState = true; + } + + pthread_mutex_lock(self.mutexProducer); + CommonSettings.GFX3D_Renderer_Multisample = cState; + pthread_mutex_unlock(self.mutexProducer); +} + +- (BOOL) render3DMultisample +{ + OSSpinLockLock(&spinlockRender3DMultisample); + BOOL state = [(NSNumber *)[property valueForKey:@"render3DMultisample"] boolValue]; + OSSpinLockUnlock(&spinlockRender3DMultisample); + + return state; +} + - (void) doCoreEmuFrame { NSData *gpuData = nil; @@ -1061,6 +1089,10 @@ GPU3DInterface *core3DList[] = { [self handleSetRender3DLineHack:[messageComponents objectAtIndex:0]]; break; + case MESSAGE_SET_RENDER3D_MULTISAMPLE: + [self handleSetRender3DMultisample:[messageComponents objectAtIndex:0]]; + break; + case MESSAGE_SET_VIEW_TO_BLACK: [self handleSetViewToBlack]; break; @@ -1155,6 +1187,12 @@ GPU3DInterface *core3DList[] = { [self setRender3DLineHack:theState]; } +- (void) handleSetRender3DMultisample:(NSData *)stateData +{ + const BOOL theState = *(BOOL *)[stateData bytes]; + [self setRender3DMultisample:theState]; +} + - (void) handleSetViewToBlack { [self fillVideoFrameWithColor:0x8000]; diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings index 107cd56bf..0836a15c0 100644 Binary files a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings and b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings differ diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib index fdfd41c1e..172884789 100644 --- a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib +++ b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib @@ -7046,7 +7046,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA InputPrefsView - + 268 YES @@ -7055,6 +7055,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 12 {{13, 10}, {463, 401}} + YES @@ -7079,6 +7080,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{72, 44}, {84, 17}} + YES 68288064 @@ -7095,6 +7097,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{44, 16}, {112, 17}} + YES 68288064 @@ -7111,6 +7114,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{158, 38}, {126, 26}} + YES -2076049856 @@ -7191,6 +7195,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{289, 14}, {96, 22}} + YES -1804468671 @@ -7268,6 +7273,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{63, 72}, {93, 17}} + YES 68288064 @@ -7284,6 +7290,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{158, 66}, {126, 26}} + YES -2076049856 @@ -7351,6 +7358,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{158, 11}, {126, 26}} + YES -2076049856 @@ -7452,10 +7460,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {429, 100}} + {{6, 187}, {431, 116}} + {0, 0} 67239424 @@ -7499,6 +7509,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{18, 14}, {100, 38}} + YES 2 1 @@ -7689,10 +7700,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {194, 62}} + {{15, 10}, {196, 78}} + {0, 0} 67239424 @@ -7726,6 +7739,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{18, 14}, {150, 38}} + YES 2 1 @@ -7916,10 +7930,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {194, 62}} + {{218, 10}, {196, 78}} + {0, 0} 67239424 @@ -7941,10 +7957,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {429, 98}} + {{6, 69}, {431, 114}} + {0, 0} 67239424 @@ -7966,6 +7984,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{10, 33}, {443, 355}} + Display Views @@ -8566,7 +8585,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - {{74, 81}, {295, 124}} + {{74, 110}, {295, 124}} {0, 0} @@ -8589,7 +8608,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{217, 297}, {152, 26}} + {{217, 318}, {152, 26}} YES @@ -8655,7 +8674,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{74, 303}, {141, 17}} + {{74, 324}, {141, 17}} YES @@ -8671,7 +8690,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{205, 34}, {165, 26}} + {{205, 13}, {165, 26}} YES @@ -8750,7 +8769,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{47, 40}, {156, 17}} + {{47, 19}, {156, 17}} YES @@ -8822,7 +8841,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - {{74, 209}, {295, 74}} + {{74, 238}, {295, 74}} {0, 0} @@ -8842,6 +8861,63 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 2 NO + + + 12 + + YES + + + 256 + + YES + + + 268 + {{16, 12}, {223, 18}} + + YES + + 67239424 + 0 + Enable Multisample Antialiasing + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {293, 38}} + + + + {{74, 52}, {295, 54}} + + {0, 0} + + 67239424 + 0 + OpenGL Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + {{10, 33}, {443, 355}} @@ -8862,6 +8938,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {489, 425} + + NSView @@ -16048,14 +16126,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 279 2 - {{230, 59}, {284, 482}} + {{230, 1}, {284, 540}} -461896704 3D Rendering Settings NSPanel {1.79769e+308, 1.79769e+308} - + 256 YES @@ -16074,6 +16152,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{15, 77}, {206, 18}} + YES -2080244224 @@ -16096,6 +16175,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{15, 57}, {134, 18}} + YES -2080244224 @@ -16118,6 +16198,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{15, 37}, {80, 18}} + YES -2080244224 @@ -16140,6 +16221,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{185, 12}, {45, 19}} + YES -1804468671 @@ -16220,6 +16302,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{15, 14}, {165, 14}} + YES 68288064 @@ -16234,10 +16317,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {248, 103}} + - {{17, 163}, {250, 119}} + {{17, 221}, {250, 119}} + {0, 0} 67239424 @@ -16261,6 +16346,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{65, 18}, {154, 19}} + YES -2080244224 @@ -16291,6 +16377,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{18, 14}, {107, 58}} + YES 3 1 @@ -16495,10 +16582,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {248, 82}} + - {{17, 364}, {250, 98}} + {{17, 422}, {250, 98}} + {0, 0} 67239424 @@ -16532,6 +16621,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{18, 14}, {120, 78}} + YES 4 1 @@ -16783,10 +16873,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {248, 102}} + {{17, 41}, {250, 118}} + {0, 0} 67239424 @@ -16820,6 +16912,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{15, 32}, {113, 18}} + YES -2080244224 @@ -16842,6 +16935,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{15, 12}, {108, 18}} + YES -2080244224 @@ -16862,10 +16956,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 1}, {248, 58}} + - {{17, 286}, {250, 74}} + {{17, 344}, {250, 74}} + {0, 0} 67239424 @@ -16884,8 +16980,70 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 2 NO + + + 12 + + YES + + + 256 + + YES + + + 268 + {{16, 12}, {192, 18}} + + + YES + + 67239424 + 131072 + Enable Multisample Antialiasing + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {248, 38}} + + + + + {{17, 163}, {250, 54}} + + + {0, 0} + + 67239424 + 0 + OpenGL Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + - {284, 482} + {284, 540} + + {{0, 0}, {1920, 1178}} {1.79769e+308, 1.79769e+308} @@ -21207,6 +21365,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA useVerticalSync displayOrientation displayOrder + render3DMultisample YES @@ -30791,6 +30950,46 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 6616 + + + value: selection.render3DMultisample + + + + + + value: selection.render3DMultisample + value + selection.render3DMultisample + 2 + + + 6621 + + + + value: values.Render3D_Multisample + + + + + + value: values.Render3D_Multisample + value + values.Render3D_Multisample + 2 + + + 6625 + + + + change3DRenderMultisample: + + + + 6626 + @@ -35623,12 +35822,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA YES - + + @@ -35790,9 +35990,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA YES - - + + + @@ -42043,6 +42244,52 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + 6617 + + + YES + + + + + + 6618 + + + YES + + + + + + 6619 + + + + + 6622 + + + YES + + + + + + 6623 + + + YES + + + + + + 6624 + + + @@ -44147,6 +44394,16 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 6611.IBPluginDependency 6611.IBViewBoundsToFrameTransform 6612.IBPluginDependency + 6617.IBPluginDependency + 6618.IBAttributePlaceholdersKey + 6618.IBPluginDependency + 6618.IBViewBoundsToFrameTransform + 6619.IBPluginDependency + 6622.IBPluginDependency + 6622.IBViewBoundsToFrameTransform + 6623.IBAttributePlaceholdersKey + 6623.IBPluginDependency + 6624.IBPluginDependency 714.IBEditorWindowLastContentRect 714.IBPluginDependency 714.IBViewBoundsToFrameTransform @@ -44898,7 +45155,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1040, 623}, {489, 425}} + {{1000, 634}, {489, 425}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -45925,7 +46182,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABBcAAAwpIAAA + P4AAAL+AAABBcAAAwlQAAA com.apple.InterfaceBuilder.CocoaPlugin @@ -45971,9 +46228,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA AUGIAABDIwAAA com.apple.InterfaceBuilder.CocoaPlugin - {{1219, 241}, {284, 482}} + {{1300, 177}, {284, 540}} com.apple.InterfaceBuilder.CocoaPlugin - {{1219, 241}, {284, 482}} + {{1300, 177}, {284, 540}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -45983,7 +46240,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - AUKUAABCwAAAA + AUKUAABC3AAAA com.apple.InterfaceBuilder.CocoaPlugin @@ -46080,7 +46337,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA ToolTip - DeSmuME's internal software 3D rendering engine. Very high CPU usage. Recommended setting. + DeSmuME's internal software 3D rendering engine. Has the best 3D emulation accuracy. Very high CPU usage. Recommended setting. com.apple.InterfaceBuilder.CocoaPlugin @@ -46098,7 +46355,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA P4AAAL+AAABDXAAAw5qAAA com.apple.InterfaceBuilder.CocoaPlugin - {{1269, 906}, {152, 63}} + {{1229, 938}, {152, 63}} com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -46114,7 +46371,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA ToolTip - DeSmuME's internal software 3D rendering engine. Very high CPU usage. Recommended setting. + DeSmuME's internal software 3D rendering engine. Has the best 3D emulation accuracy. Very high CPU usage. Recommended setting. com.apple.InterfaceBuilder.CocoaPlugin @@ -46188,7 +46445,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA ToolTip - Sets the default number of processing threads that SoftRasterizer will use for 3D rendering. This is an option for advanced users. For most cases, it's best to keep this set to Automatic. + Sets the default number of processing threads that DeSmuME will use for 3D rendering. This is an option for advanced users. For most cases, it's best to keep this set to Automatic. com.apple.InterfaceBuilder.CocoaPlugin @@ -46241,7 +46498,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - AUKUAABDXQAAA + AUKUAABDUQAAA ToolTip @@ -48129,7 +48386,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA ToolTip - OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but the geometry may be less accurate. Extremely high CPU usage. + OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but 3D emulation is less accurate overall. Low CPU usage. However, it requires the usage of your GPU. com.apple.InterfaceBuilder.CocoaPlugin @@ -48138,7 +48395,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA ToolTip - OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but the geometry may be less accurate. Extremely high CPU usage. + OpenGL-based 3D rendering engine. Some 3D objects may have better looking texturing, but 3D emulation is less accurate overall. Low CPU usage. However, it requires the usage of your GPU. com.apple.InterfaceBuilder.CocoaPlugin @@ -48418,6 +48675,34 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA P4AAAL+AAABDqwAAwpQAAA com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the edges of 3D objects using multisample antialiasing (MSAA). No CPU usage. However, it requires additional VRAM from your GPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwrAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUKUAABCUAAAA + + + ToolTip + + ToolTip + + Smooths the edges of 3D objects using multisample antialiasing (MSAA) by default. No CPU usage. However, it requires additional VRAM from your GPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin {{1191, 651}, {328, 434}} com.apple.InterfaceBuilder.CocoaPlugin @@ -48767,7 +49052,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 6616 + 6626 @@ -49293,6 +49578,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA change3DRenderHighPrecisionColorInterpolation: change3DRenderLineHack: change3DRenderMethod: + change3DRenderMultisample: change3DRenderTextures: change3DRenderThreads: changeAudioEngine: @@ -49323,9 +49609,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA hudDisable: importRomSave: loadEmuSaveStateSlot: - loadLastRom: - loadReplay: - loadRomToggle: openEmuSaveState: openRom: resetCore: @@ -49338,16 +49621,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA selectScreenshotFileFormat: speedLimitDisable: toggleAutoFrameSkip: - toggleDisplayLayoutSettingsDrawer: toggleGPUState: toggleKeepMinDisplaySizeAtNormal: toggleStatusBar: - toggleVideoOutputSettingsDrawer: writeDefaults3DRenderingSettings: - writeDefaultsComboDisplayLayoutSettings: writeDefaultsDisplayRotation: writeDefaultsEmulationSettings: - writeDefaultsGeneralDisplayLayoutSettings: writeDefaultsHUDSettings: writeDefaultsSoundSettings: writeDefaultsVideoOutputSettings: @@ -49412,12 +49691,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA id id id - id - id - id - id - id - id @@ -49430,6 +49703,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA change3DRenderHighPrecisionColorInterpolation: change3DRenderLineHack: change3DRenderMethod: + change3DRenderMultisample: change3DRenderTextures: change3DRenderThreads: changeAudioEngine: @@ -49460,9 +49734,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA hudDisable: importRomSave: loadEmuSaveStateSlot: - loadLastRom: - loadReplay: - loadRomToggle: openEmuSaveState: openRom: resetCore: @@ -49475,16 +49746,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA selectScreenshotFileFormat: speedLimitDisable: toggleAutoFrameSkip: - toggleDisplayLayoutSettingsDrawer: toggleGPUState: toggleKeepMinDisplaySizeAtNormal: toggleStatusBar: - toggleVideoOutputSettingsDrawer: writeDefaults3DRenderingSettings: - writeDefaultsComboDisplayLayoutSettings: writeDefaultsDisplayRotation: writeDefaultsEmulationSettings: - writeDefaultsGeneralDisplayLayoutSettings: writeDefaultsHUDSettings: writeDefaultsSoundSettings: writeDefaultsVideoOutputSettings: @@ -49515,6 +49782,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA change3DRenderMethod: id + + change3DRenderMultisample: + id + change3DRenderTextures: id @@ -49635,18 +49906,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA loadEmuSaveStateSlot: id - - loadLastRom: - id - - - loadReplay: - id - - - loadRomToggle: - id - openEmuSaveState: id @@ -49695,10 +49954,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA toggleAutoFrameSkip: id - - toggleDisplayLayoutSettingsDrawer: - id - toggleGPUState: id @@ -49711,18 +49966,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA toggleStatusBar: id - - toggleVideoOutputSettingsDrawer: - id - writeDefaults3DRenderingSettings: id - - writeDefaultsComboDisplayLayoutSettings: - id - writeDefaultsDisplayRotation: id @@ -49731,10 +49978,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA writeDefaultsEmulationSettings: id - - writeDefaultsGeneralDisplayLayoutSettings: - id - writeDefaultsHUDSettings: id @@ -49760,7 +50003,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA cheatListController cheatWindowController cheatWindowDelegate - displayLayoutSettingsDrawer displayView emuWindowController exportRomSavePanelAccessoryView @@ -49769,7 +50011,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA saveFileMigrationSheet saveScreenshotPanelAccessoryView saveStatePrecloseSheet - videoOutputSettingsDrawer window @@ -49781,7 +50022,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA NSArrayController NSObjectController CheatWindowDelegate - NSDrawer NSView NSObjectController NSView @@ -49790,7 +50030,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA NSWindow NSView NSWindow - NSDrawer NSWindow @@ -49805,7 +50044,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA cheatListController cheatWindowController cheatWindowDelegate - displayLayoutSettingsDrawer displayView emuWindowController exportRomSavePanelAccessoryView @@ -49814,7 +50052,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA saveFileMigrationSheet saveScreenshotPanelAccessoryView saveStatePrecloseSheet - videoOutputSettingsDrawer window @@ -49847,10 +50084,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA cheatWindowDelegate CheatWindowDelegate - - displayLayoutSettingsDrawer - NSDrawer - displayView NSView @@ -49883,10 +50116,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA saveStatePrecloseSheet NSWindow - - videoOutputSettingsDrawer - NSDrawer - window NSWindow @@ -51160,6 +51389,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin.macosx + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 diff --git a/desmume/src/cocoa/userinterface/displayView.h b/desmume/src/cocoa/userinterface/displayView.h index be537c6c5..41ef63f33 100644 --- a/desmume/src/cocoa/userinterface/displayView.h +++ b/desmume/src/cocoa/userinterface/displayView.h @@ -95,6 +95,7 @@ - (void) setRender3DDepthComparisonThreshold:(NSUInteger)threshold; - (void) setRender3DThreads:(NSUInteger)numberThreads; - (void) setRender3DLineHack:(BOOL)state; +- (void) setRender3DMultisample:(BOOL)state; - (void) setViewToBlack; - (void) setViewToWhite; - (void) requestScreenshot:(NSURL *)fileURL fileType:(NSBitmapImageFileType)fileType; diff --git a/desmume/src/cocoa/userinterface/displayView.mm b/desmume/src/cocoa/userinterface/displayView.mm index 404ea8c28..b8d2010e2 100644 --- a/desmume/src/cocoa/userinterface/displayView.mm +++ b/desmume/src/cocoa/userinterface/displayView.mm @@ -171,6 +171,7 @@ CGLContextObj OSXOpenGLRendererContext = NULL; [bindings setValue:[NSNumber numberWithInteger:0] forKey:@"render3DDepthComparisonThreshold"]; [bindings setValue:[NSNumber numberWithInteger:0] forKey:@"render3DThreads"]; [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"render3DLineHack"]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"render3DMultisample"]; return self; } @@ -471,6 +472,12 @@ CGLContextObj OSXOpenGLRendererContext = NULL; [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_LINE_HACK boolValue:state]; } +- (void) setRender3DMultisample:(BOOL)state +{ + [bindings setValue:[NSNumber numberWithBool:state] forKey:@"render3DMultisample"]; + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_MULTISAMPLE boolValue:state]; +} + - (void) setViewToBlack { [CocoaDSUtil messageSendOneWay:self.sendPortDisplay msgID:MESSAGE_SET_VIEW_TO_BLACK]; diff --git a/desmume/src/cocoa/userinterface/emuWindowDelegate.h b/desmume/src/cocoa/userinterface/emuWindowDelegate.h index 7ec3754a1..60766d985 100644 --- a/desmume/src/cocoa/userinterface/emuWindowDelegate.h +++ b/desmume/src/cocoa/userinterface/emuWindowDelegate.h @@ -200,6 +200,7 @@ - (IBAction) change3DRenderDepthComparisonThreshold:(id)sender; - (IBAction) change3DRenderThreads:(id)sender; - (IBAction) change3DRenderLineHack:(id)sender; +- (IBAction) change3DRenderMultisample:(id)sender; - (void) setShowStatusBar:(BOOL)showStatusBar; diff --git a/desmume/src/cocoa/userinterface/emuWindowDelegate.mm b/desmume/src/cocoa/userinterface/emuWindowDelegate.mm index c0e157c67..c334efeb3 100644 --- a/desmume/src/cocoa/userinterface/emuWindowDelegate.mm +++ b/desmume/src/cocoa/userinterface/emuWindowDelegate.mm @@ -984,6 +984,11 @@ [dispViewDelegate setRender3DLineHack:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; } +- (IBAction) change3DRenderMultisample:(id)sender +{ + [dispViewDelegate setRender3DMultisample:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + - (IBAction) hudDisable:(id)sender { if ([dispViewDelegate isHudEnabled]) @@ -2075,6 +2080,7 @@ [[self dispViewDelegate] setRender3DTextures:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_Textures"]]; [[self dispViewDelegate] setRender3DDepthComparisonThreshold:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_DepthComparisonThreshold"]]; [[self dispViewDelegate] setRender3DLineHack:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_LineHack"]]; + [[self dispViewDelegate] setRender3DMultisample:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_Multisample"]]; } - (IBAction) writeDefaultsDisplayRotation:(id)sender @@ -2113,6 +2119,7 @@ [[NSUserDefaults standardUserDefaults] setInteger:[[dispViewBindings valueForKey:@"render3DDepthComparisonThreshold"] integerValue] forKey:@"Render3D_DepthComparisonThreshold"]; [[NSUserDefaults standardUserDefaults] setInteger:[[dispViewBindings valueForKey:@"render3DThreads"] integerValue] forKey:@"Render3D_Threads"]; [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DLineHack"] boolValue] forKey:@"Render3D_LineHack"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DMultisample"] boolValue] forKey:@"Render3D_Multisample"]; } - (IBAction) writeDefaultsEmulationSettings:(id)sender