mirror of https://github.com/axmolengine/axmol.git
fixed #206
This commit is contained in:
parent
2587114512
commit
0aab635d85
|
@ -405,6 +405,11 @@ public:
|
||||||
@since v0.8.2
|
@since v0.8.2
|
||||||
*/
|
*/
|
||||||
static bool setDirectorType(ccDirectorType obDirectorType);
|
static bool setDirectorType(ccDirectorType obDirectorType);
|
||||||
|
|
||||||
|
/** recalculate the projection view and projection size based on the EAGLVIEW
|
||||||
|
@since v0.99.4
|
||||||
|
*/
|
||||||
|
void recalculateProjectionAndEAGLViewSize();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool isOpenGLAttached(void);
|
bool isOpenGLAttached(void);
|
||||||
|
@ -426,14 +431,9 @@ protected:
|
||||||
void showProfilers(void);
|
void showProfilers(void);
|
||||||
#endif // CC_ENABLE_PROFILERS
|
#endif // CC_ENABLE_PROFILERS
|
||||||
|
|
||||||
/** recalculate the projection view and projection size based on the EAGLVIEW
|
|
||||||
@since v0.99.4
|
|
||||||
*/
|
|
||||||
void recalculateProjectionAndEAGLViewSize();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// compute frame rate
|
// compute frame rate
|
||||||
void computeFrameRate(void);
|
void computeFrameRate(void);
|
||||||
// compute delta time between computing frame rate
|
// compute delta time between computing frame rate
|
||||||
void calculateFramerateDeltaTime(void);
|
void calculateFramerateDeltaTime(void);
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#import "CCDirectorCaller.h"
|
#import "CCDirectorCaller.h"
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
#include "CCXApplication_iphone.h"
|
#include "CCXApplication_iphone.h"
|
||||||
#include "CCXUIImage_iphone.h"
|
#include "CCXUIImage_iphone.h"
|
||||||
|
@ -46,6 +47,28 @@ namespace cocos2d {
|
||||||
|
|
||||||
ccDeviceOrientation CCXApplication::setDeviceOrientation(ccDeviceOrientation eOritation)
|
ccDeviceOrientation CCXApplication::setDeviceOrientation(ccDeviceOrientation eOritation)
|
||||||
{
|
{
|
||||||
|
ccDeviceOrientation oldOrientation = CCDirector::sharedDirector()->getDeviceOrientation();
|
||||||
|
|
||||||
|
if (eOritation != oldOrientation)
|
||||||
|
{
|
||||||
|
switch (eOritation) {
|
||||||
|
case CCDeviceOrientationPortrait:
|
||||||
|
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait animated: NO];
|
||||||
|
break;
|
||||||
|
case CCDeviceOrientationPortraitUpsideDown:
|
||||||
|
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortraitUpsideDown animated: NO];
|
||||||
|
break;
|
||||||
|
case CCDeviceOrientationLandscapeLeft:
|
||||||
|
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated: NO];
|
||||||
|
break;
|
||||||
|
case CCDeviceOrientationLandscapeRight:
|
||||||
|
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeLeft animated: NO];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return eOritation;
|
return eOritation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,13 +42,13 @@ CCXEGLView::~CCXEGLView()
|
||||||
|
|
||||||
cocos2d::CGSize CCXEGLView::getSize()
|
cocos2d::CGSize CCXEGLView::getSize()
|
||||||
{
|
{
|
||||||
cocos2d::CGSize size([[EAGLView getGlobalView] getWidth], [[EAGLView getGlobalView] getHeight]);
|
cocos2d::CGSize size([[EAGLView sharedEGLView] getWidth], [[EAGLView sharedEGLView] getHeight]);
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCXEGLView::isOpenGLReady()
|
bool CCXEGLView::isOpenGLReady()
|
||||||
{
|
{
|
||||||
return [EAGLView getGlobalView] != NULL;
|
return [EAGLView sharedEGLView] != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCXEGLView::release()
|
void CCXEGLView::release()
|
||||||
|
@ -56,7 +56,7 @@ void CCXEGLView::release()
|
||||||
[CCDirectorCaller destroy];
|
[CCDirectorCaller destroy];
|
||||||
|
|
||||||
// destroy EAGLView
|
// destroy EAGLView
|
||||||
[[EAGLView getGlobalView] removeFromSuperview];
|
[[EAGLView sharedEGLView] removeFromSuperview];
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCXEGLView::setTouchDelegate(EGLTouchDelegate * pDelegate)
|
void CCXEGLView::setTouchDelegate(EGLTouchDelegate * pDelegate)
|
||||||
|
@ -66,7 +66,7 @@ void CCXEGLView::setTouchDelegate(EGLTouchDelegate * pDelegate)
|
||||||
|
|
||||||
void CCXEGLView::swapBuffers()
|
void CCXEGLView::swapBuffers()
|
||||||
{
|
{
|
||||||
[[EAGLView getGlobalView] swapBuffers];
|
[[EAGLView sharedEGLView] swapBuffers];
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCXEGLView::touchesBegan(NSSet *set)
|
void CCXEGLView::touchesBegan(NSSet *set)
|
||||||
|
|
|
@ -95,7 +95,7 @@ Copyright (C) 2008 Apple Inc. All Rights Reserved.
|
||||||
/** creates an initializes an EAGLView with a frame, a color buffer format, and a depth buffer format */
|
/** creates an initializes an EAGLView with a frame, a color buffer format, and a depth buffer format */
|
||||||
+ (id) viewWithFrame:(CGRect)frame pixelFormat:(NSString*)format depthFormat:(GLuint)depth preserveBackbuffer:(BOOL)retained;
|
+ (id) viewWithFrame:(CGRect)frame pixelFormat:(NSString*)format depthFormat:(GLuint)depth preserveBackbuffer:(BOOL)retained;
|
||||||
// get the view object
|
// get the view object
|
||||||
+(id) getGlobalView;
|
+(id) sharedEGLView;
|
||||||
|
|
||||||
/** Initializes an EAGLView with a frame and 0-bit depth buffer, and a RGB565 color buffer */
|
/** Initializes an EAGLView with a frame and 0-bit depth buffer, and a RGB565 color buffer */
|
||||||
- (id) initWithFrame:(CGRect)frame; //These also set the current context
|
- (id) initWithFrame:(CGRect)frame; //These also set the current context
|
||||||
|
@ -118,6 +118,9 @@ Copyright (C) 2008 Apple Inc. All Rights Reserved.
|
||||||
/** EAGLView uses double-buffer. This method swaps the buffers */
|
/** EAGLView uses double-buffer. This method swaps the buffers */
|
||||||
-(void) swapBuffers;
|
-(void) swapBuffers;
|
||||||
|
|
||||||
|
- (CGRect) convertRectFromViewToSurface:(CGRect)rect;
|
||||||
|
- (CGPoint) convertPointFromViewToSurface:(CGPoint)point;
|
||||||
|
|
||||||
-(int) getWidth;
|
-(int) getWidth;
|
||||||
-(int) getHeight;
|
-(int) getHeight;
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -103,7 +103,7 @@ static EAGLView *view;
|
||||||
return [[[self alloc] initWithFrame:frame pixelFormat:format depthFormat:depth preserveBackbuffer:retained] autorelease];
|
return [[[self alloc] initWithFrame:frame pixelFormat:format depthFormat:depth preserveBackbuffer:retained] autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (id) getGlobalView
|
+ (id) sharedEGLView
|
||||||
{
|
{
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -199,6 +199,8 @@ static EAGLView *view;
|
||||||
{
|
{
|
||||||
[renderer_ resizeFromLayer:(CAEAGLLayer*)self.layer];
|
[renderer_ resizeFromLayer:(CAEAGLLayer*)self.layer];
|
||||||
size_ = [renderer_ backingSize];
|
size_ = [renderer_ backingSize];
|
||||||
|
|
||||||
|
cocos2d::CCDirector::sharedDirector()->recalculateProjectionAndEAGLViewSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) swapBuffers
|
- (void) swapBuffers
|
||||||
|
@ -225,6 +227,30 @@ static EAGLView *view;
|
||||||
|
|
||||||
#pragma mark EAGLView - Point conversion
|
#pragma mark EAGLView - Point conversion
|
||||||
|
|
||||||
|
- (CGPoint) convertPointFromViewToSurface:(CGPoint)point
|
||||||
|
{
|
||||||
|
CGRect bounds = [self bounds];
|
||||||
|
|
||||||
|
CGPoint ret;
|
||||||
|
ret.x = (point.x - bounds.origin.x) / bounds.size.width * size_.width;
|
||||||
|
ret.y = (point.y - bounds.origin.y) / bounds.size.height * size_.height;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (CGRect) convertRectFromViewToSurface:(CGRect)rect
|
||||||
|
{
|
||||||
|
CGRect bounds = [self bounds];
|
||||||
|
|
||||||
|
CGRect ret;
|
||||||
|
ret.origin.x = (rect.origin.x - bounds.origin.x) / bounds.size.width * size_.width;
|
||||||
|
ret.origin.y = (rect.origin.y - bounds.origin.y) / bounds.size.height * size_.height;
|
||||||
|
ret.size.width = rect.size.width / bounds.size.width * size_.width;
|
||||||
|
ret.size.height = rect.size.height / bounds.size.height * size_.height;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// Pass the touches to the superview
|
// Pass the touches to the superview
|
||||||
#pragma mark EAGLView - Touch Delegate
|
#pragma mark EAGLView - Touch Delegate
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue