mirror of https://github.com/axmolengine/axmol.git
91 lines
2.0 KiB
C
91 lines
2.0 KiB
C
|
#ifndef __CC_EGLVIEW_AIRPLAY_H__
|
||
|
#define __CC_EGLVIEW_AIRPLAY_H__
|
||
|
|
||
|
#include "CCGeometry.h"
|
||
|
#include "s3eKeyboard.h"
|
||
|
#include "IwUtil.h"
|
||
|
#include "IwUtilInitTerm.h"
|
||
|
|
||
|
NS_CC_BEGIN;
|
||
|
class CCSet;
|
||
|
class CCTouch;
|
||
|
class EGLTouchDelegate;
|
||
|
class CCKeypadDelegate;
|
||
|
|
||
|
|
||
|
class CC_DLL CCEGLView
|
||
|
{
|
||
|
public:
|
||
|
CCEGLView();
|
||
|
virtual ~CCEGLView();
|
||
|
|
||
|
CCSize getSize();
|
||
|
bool isOpenGLReady();
|
||
|
/**
|
||
|
* the width and height is the real size of phone
|
||
|
*/
|
||
|
void setFrameWitdAndHeight(int width, int height);
|
||
|
/**
|
||
|
* create a drawing rect,
|
||
|
* the width and heiht is the resource size match best
|
||
|
*/
|
||
|
void create(int width, int height);
|
||
|
EGLTouchDelegate* getDelegate(void);
|
||
|
|
||
|
// keep compatible
|
||
|
void release();
|
||
|
void setTouchDelegate(EGLTouchDelegate * pDelegate);
|
||
|
void swapBuffers();
|
||
|
bool canSetContentScaleFactor();
|
||
|
void setContentScaleFactor(float contentScaleFactor);
|
||
|
void setViewPortInPoints(float x, float y, float w, float h);
|
||
|
CCRect getViewPort();
|
||
|
float getScreenScaleFactor();
|
||
|
|
||
|
// static function
|
||
|
/**
|
||
|
@brief get the shared main open gl window
|
||
|
*/
|
||
|
static CCEGLView& sharedOpenGLView();
|
||
|
|
||
|
private:
|
||
|
|
||
|
CCSize m_sSizeInPixel;
|
||
|
CCSize m_sSizeInPoint;
|
||
|
CCRect m_rcViewPort;
|
||
|
bool m_bNotHVGA;
|
||
|
|
||
|
EGLTouchDelegate *m_pDelegate;
|
||
|
float m_fScreenScaleFactor;
|
||
|
|
||
|
bool m_bAccelState;
|
||
|
bool m_bCaptured;
|
||
|
s3eKey m_Key;
|
||
|
CCSet * m_pSet;
|
||
|
CCTouch * m_pTouch;
|
||
|
|
||
|
void setTouch(void* systemData);
|
||
|
void setMotionTouch();
|
||
|
void setKeyTouch(void* systemData);
|
||
|
|
||
|
static int32 TouchEventHandler(void* systemData, void* userData)
|
||
|
{
|
||
|
((CCEGLView*)userData)->setTouch(systemData);
|
||
|
return 0;
|
||
|
}
|
||
|
static int32 MotionEventHandler(void* systemData, void* userData)
|
||
|
{
|
||
|
((CCEGLView*)userData)->setMotionTouch();
|
||
|
return 0;
|
||
|
}
|
||
|
static int32 KeyEventHandler(void* systemData, void* userData)
|
||
|
{
|
||
|
((CCEGLView*)userData)->setKeyTouch(systemData);
|
||
|
return 0;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
NS_CC_END;
|
||
|
|
||
|
#endif // end of __CC_EGLVIEW_AIRPLAY_H__
|