为一个cocos2dx 2.x游戏配了下mac工程,运行后发现clippingNode没起作用,运行TestCpp中的clippingNode示例是起作用的,对比AppController.mm,发现是applicationDidFinishLaunching中少了一段代码,补充后如下(黄色部分为补充代码):
-(void) applicationDidFinishLaunching:(NSNotification *)aNotification
{
// create the window
// note that using NSResizableWindowMask causes the window to be a little
// smaller and therefore ipad graphics are not loaded
NSRect rect = NSMakeRect(0, 0, 2048, 1536);
window = [[NSWindow alloc] initWithContentRect:rect
styleMask:( NSClosableWindowMask | NSTitledWindowMask )
backing:NSBackingStoreBuffered
defer:YES];
//fix begin
//fix clippingNode issue
//the below code is copy from TestCpp mac proj
NSOpenGLPixelFormatAttribute attributes[] = {
NSOpenGLPFADoubleBuffer,
NSOpenGLPFADepthSize, 24,
NSOpenGLPFAStencilSize, 8,
0
};
NSOpenGLPixelFormat *pixelFormat = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attributes] autorelease];
// allocate our GL view
// (isn‘t there already a shared EAGLView?)
glView = [[EAGLView alloc] initWithFrame:rect pixelFormat:pixelFormat];
//fix end
/* // allocate our GL view
// (isn‘t there already a shared EAGLView?)
glView = [[EAGLView alloc] initWithFrame:rect];
*/
// set window parameters
[window becomeFirstResponder];
[window setContentView:glView];
[window setTitle:@"HelloCpp"];
[window makeKeyAndOrderFront:self];
[window setAcceptsMouseMovedEvents:NO];
[glView setFrameZoomFactor:0.4];
cocos2d::CCApplication::sharedApplication()->run();
}